Referência da API PactualPay
A API PactualPay é construída sobre convenções REST padrão. Possui URLs com recursos previsíveis, aceita corpos de requisição codificados em JSON, retorna respostas JSON nos padrões RFC 9457 e utiliza códigos de status HTTP convencionais para indicar sucesso ou erro.
Header Authorization: Bearer pp_live_... em todas as requisições autenticadas.
Header x-idempotency-key em mutações para proteção absoluta contra duplo débito.
Assinatura HMAC SHA-256 no cabeçalho X-PactualPay-Signature para cada evento.
/healthStatus & Liveness Check
Endpoint público de diagnóstico para verificar se a API Gateway da PactualPay está operacional e pronta para receber requisições.
Cabeçalhos HTTP (Headers)
Content-Typeapplication/json
curl -X GET https://api.pactualpay.com.br/health
{
"status": "ok",
"service": "api",
"uptime": 341829.41
}/v1/payment-linksCriar Link de Pagamento (Pix 1:N)
Cria um novo link de pagamento reutilizável capaz de atender múltiplos compradores simultaneamente. Cada comprador recebe uma cobrança Pix isolada, com conversão e liquidação automática em USDT.
Cabeçalhos HTTP (Headers)
AuthorizationBearer Token da sua conta
x-idempotency-keyIdentificador único UUID v4
Content-Typeapplication/json
Corpo da Requisição (JSON Body)
nameobrigatórioTítulo público visível do produto, serviço ou plano.
Exemplo: Consultoria Estratégica Mensal
amountBrlobrigatórioValor exato em reais com 2 casas decimais (ex: "150.00"). Não utilize número de ponto flutuante.
Exemplo: 150.00
descriptionopcionalDescrição detalhada com instruções de entrega ou termos do serviço.
Exemplo: Sessão de consultoria e acompanhamento executivo.
pixExpirationMinutesopcionalTempo de validade do QR Code Pix gerado para cada pagador (padrão: 60 minutos).
Exemplo: 60
customSlugopcionalIdentificador amigável para a URL pública (ex: pactualpay.com.br/p/consultoria).
Exemplo: consultoria-2026
maxSuccessfulPaymentsopcionalLimite máximo de vendas aprovadas suportadas pelo link antes de pausar automaticamente.
Exemplo: 100
redirectUrlopcionalURL para onde o cliente será redirecionado após a confirmação imediata do Pix.
Exemplo: https://seunegocio.com.br/sucesso
webhookUrlopcionalURL de destino para receber notificações de pagamentos deste link via HTTP POST assinado.
Exemplo: https://seunegocio.com.br/api/webhooks/pactual
payerFieldConfigurationopcionalConfiguração de campos do pagador (REQUIRED, OPTIONAL ou HIDDEN para name, document, email, phone, address).
curl -X POST https://api.pactualpay.com.br/v1/payment-links \
-H "Authorization: Bearer pp_live_S1f3a9c2d8e4f1a0b7c9" \
-H "Content-Type: application/json" \
-H "x-idempotency-key: 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d" \
-d '{
"name": "Consultoria Estratégica Mensal",
"amountBrl": "150.00",
"description": "Sessão de consultoria executiva",
"pixExpirationMinutes": 60,
"customSlug": "consultoria-2026",
"redirectUrl": "https://seunegocio.com.br/sucesso"
}'{
"id": "pl_01H9A3X7B4C8D2E1F0G",
"publicToken": "pl_xsMwcMDgJGArjkvFyRG5O6Px",
"customSlug": "consultoria-2026",
"name": "Consultoria Estratégica Mensal",
"description": "Sessão de consultoria executiva",
"amountBrl": "150.00",
"status": "ACTIVE",
"pixExpirationMinutes": 60,
"checkoutUrl": "https://pactualpay.com.br/p/pl_xsMwcMDgJGArjkvFyRG5O6Px",
"createdAt": "2026-09-15T01:30:00.000Z"
}/v1/payment-linksListar Links de Pagamento
Retorna a lista consolidada de links de pagamento pertencentes ao lojista autenticado. Suporta filtragem por status (`ACTIVE`, `PAUSED`, `EXPIRED`, etc.) e busca textual por nome.
Cabeçalhos HTTP (Headers)
AuthorizationBearer Token da sua conta
Content-Typeapplication/json
curl -X GET "https://api.pactualpay.com.br/v1/payment-links?status=ACTIVE" \ -H "Authorization: Bearer pp_live_S1f3a9c2d8e4f1a0b7c9"
{
"total": 1,
"items": [
{
"id": "pl_01H9A3X7B4C8D2E1F0G",
"publicToken": "pl_xsMwcMDgJGArjkvFyRG5O6Px",
"customSlug": "consultoria-2026",
"name": "Consultoria Estratégica Mensal",
"amountBrl": "150.00",
"status": "ACTIVE",
"totalCollectedBrl": "15000.00",
"usesCount": 100,
"createdAt": "2026-09-15T01:30:00.000Z"
}
]
}/v1/payment-links/:idObter Link por ID
Recupera os detalhes completos de um link de pagamento específico, incluindo versão ativa, limites e regras de formulário.
Cabeçalhos HTTP (Headers)
AuthorizationBearer Token da sua conta
Content-Typeapplication/json
Parâmetros de Rota (Path)
idstringIdentificador único do link de pagamento (UUID ou ID interno).
curl -X GET https://api.pactualpay.com.br/v1/payment-links/pl_01H9A3X7B4C8D2E1F0G \ -H "Authorization: Bearer pp_live_S1f3a9c2d8e4f1a0b7c9"
{
"id": "pl_01H9A3X7B4C8D2E1F0G",
"publicToken": "pl_xsMwcMDgJGArjkvFyRG5O6Px",
"name": "Consultoria Estratégica Mensal",
"amountBrl": "150.00",
"status": "ACTIVE",
"currentVersion": 1,
"pixExpirationMinutes": 60
}/v1/payment-links/:idAtualizar Link com Versionamento Imutável
Atualiza parâmetros do link de pagamento. Por conformidade com a auditoria financeira imutável, o campo `reason` (ou `changeReason`) é obrigatório e uma nova versão cronológica do link é registrada sem mutar cobranças passadas.
Cabeçalhos HTTP (Headers)
AuthorizationBearer Token da sua conta
x-idempotency-keyIdentificador único UUID v4
Content-Typeapplication/json
Parâmetros de Rota (Path)
idstringIdentificador único do link.
Corpo da Requisição (JSON Body)
reasonobrigatórioJustificativa da alteração para a trilha de auditoria e imutabilidade contratual.
Exemplo: Reajuste anual de tabela de preços
amountBrlopcionalNovo valor decimal em BRL.
Exemplo: 180.00
nameopcionalNovo nome do produto ou oferta.
curl -X PATCH https://api.pactualpay.com.br/v1/payment-links/pl_01H9A3X7B4C8D2E1F0G \
-H "Authorization: Bearer pp_live_S1f3a9c2d8e4f1a0b7c9" \
-H "Content-Type: application/json" \
-H "x-idempotency-key: $(uuidgen)" \
-d '{
"reason": "Reajuste anual de tabela de preços",
"amountBrl": "180.00"
}'{
"id": "pl_01H9A3X7B4C8D2E1F0G",
"amountBrl": "180.00",
"currentVersion": 2,
"reason": "Reajuste anual de tabela de preços",
"updatedAt": "2026-09-15T02:00:00.000Z"
}/v1/payment-links/:id/pauseAtivar ou Pausar Link de Pagamento
Altera o estado operacional do link de pagamento para pausado ou ativo. Quando pausado, novas sessões públicas de checkout são bloqueadas exibindo mensagem amigável de indisponibilidade.
Cabeçalhos HTTP (Headers)
AuthorizationBearer Token da sua conta
Content-Typeapplication/json
curl -X POST https://api.pactualpay.com.br/v1/payment-links/pl_01H9A3X7B4C8D2E1F0G/pause \ -H "Authorization: Bearer pp_live_S1f3a9c2d8e4f1a0b7c9"
{
"id": "pl_01H9A3X7B4C8D2E1F0G",
"status": "PAUSED",
"message": "Link pausado com sucesso."
}/v1/payment-links/:id/analyticsConsultar Métricas do Funil de Conversão
Retorna dados agregados de conversão do link de pagamento: visualizações, sessões iniciadas, emissão de Pix, pagamentos confirmados e taxa de conversão.
Cabeçalhos HTTP (Headers)
AuthorizationBearer Token da sua conta
Content-Typeapplication/json
curl -X GET https://api.pactualpay.com.br/v1/payment-links/pl_01H9A3X7B4C8D2E1F0G/analytics \ -H "Authorization: Bearer pp_live_S1f3a9c2d8e4f1a0b7c9"
{
"views": 1240,
"sessions": 890,
"pixGenerated": 540,
"paymentsConfirmed": 432,
"conversionRate": 80,
"grossVolumeBrl": "64800.00",
"netVolumeUsdt": "12412.80"
}/v1/public/payment-links/:tokenConsultar Metadados Públicos do Link
Endpoint público de leitura utilizado pelas interfaces de checkout web/mobile para renderizar o produto, nome do lojista, valor em reais e regras de campos do pagador.
Cabeçalhos HTTP (Headers)
Content-Typeapplication/json
Parâmetros de Rota (Path)
tokenstringToken público seguro do link (ex: pl_xsMwcMDgJGArjkvFyRG5O6Px) ou slug customizado.
curl -X GET https://api.pactualpay.com.br/v1/public/payment-links/pl_xsMwcMDgJGArjkvFyRG5O6Px
{
"publicToken": "pl_xsMwcMDgJGArjkvFyRG5O6Px",
"merchantTradeName": "Studio Digital Pay LTDA",
"name": "Consultoria Estratégica Mensal",
"amountBrl": "150.00",
"status": "ACTIVE",
"available": true,
"pixExpirationMinutes": 60,
"payerFieldConfiguration": {
"name": "REQUIRED",
"document": "REQUIRED",
"email": "REQUIRED",
"phone": "OPTIONAL",
"notes": "OPTIONAL"
}
}/v1/public/checkout-sessionsIniciar Sessão de Checkout
Inicia uma sessão temporária e segura de checkout para um visitante anônimo. Protegida contra scraping e abusos com mascaramento LGPD e hash criptográfico de IP.
Cabeçalhos HTTP (Headers)
Content-Typeapplication/json
Corpo da Requisição (JSON Body)
publicTokenobrigatórioToken público do link de pagamento.
Exemplo: pl_xsMwcMDgJGArjkvFyRG5O6Px
utmSourceopcionalOrigem de tráfego para analítica de vendas.
Exemplo: instagram
consentGivenopcionalConfirmação de aceite dos termos pelo comprador.
Exemplo: true
curl -X POST https://api.pactualpay.com.br/v1/public/checkout-sessions \
-H "Content-Type: application/json" \
-d '{
"publicToken": "pl_xsMwcMDgJGArjkvFyRG5O6Px",
"utmSource": "instagram",
"consentGiven": true
}'{
"sessionToken": "cs_8fa7d9b2c4e109f5a3b2c1d8",
"status": "OPEN",
"expiresAt": "2026-09-15T02:30:00.000Z"
}/v1/public/checkout-sessions/:sessionToken/generate-pixSubmeter Dados e Gerar Pix Dinâmico
Submete os dados cadastrais do comprador (nome, CPF/CNPJ e e-mail) e gera imediatamente o QR Code Pix SVG e o payload EMVCo padrão BACEN Copia e Cola.
Cabeçalhos HTTP (Headers)
x-idempotency-keyIdentificador único UUID v4
Content-Typeapplication/json
Parâmetros de Rota (Path)
sessionTokenstringToken da sessão de checkout criada no passo anterior.
Corpo da Requisição (JSON Body)
payerNameobrigatórioNome completo ou Razão Social do pagador.
Exemplo: Carlos Silva Oliveira
payerDocumentobrigatórioCPF (11 dígitos) ou CNPJ (14 dígitos) válido do comprador.
Exemplo: 123.456.789-00
payerEmailobrigatórioE-mail do comprador para envio do comprovante.
Exemplo: carlos.silva@exemplo.com.br
payerPhoneopcionalTelefone celular do pagador com DDD.
Exemplo: (11) 98765-4321
idempotencyKeyobrigatórioChave única para garantir que cliques duplos gerem a mesma cobrança Pix.
Exemplo: 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d
curl -X POST https://api.pactualpay.com.br/v1/public/checkout-sessions/cs_8fa7d9b2c4e109f5a3b2c1d8/generate-pix \
-H "Content-Type: application/json" \
-H "x-idempotency-key: $(uuidgen)" \
-d '{
"payerName": "Carlos Silva Oliveira",
"payerDocument": "123.456.789-00",
"payerEmail": "carlos.silva@exemplo.com.br",
"payerPhone": "(11) 98765-4321"
}'{
"attemptId": "pa_01H9A5Y2B1D7C3E8F4G",
"useId": "plu_01H9A5Y2A0B1C2D3E4F",
"txid": "PACTUALPAY00192837461928374",
"amountBrl": "150.00",
"copiaECola": "00020101021226840014br.gov.bcb.pix2562pix.pactualpay.com.br/qr/v1/9a8b7c6d5e5204000053039865406150.005802BR5915PactualPay S.A.6009Sao Paulo62070503***6304ABCD",
"qrCodeSvgBase64": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci...",
"expiresAt": "2026-09-15T02:30:00.000Z",
"remainingSeconds": 3600
}/v1/public/checkout-sessions/:sessionToken/statusConsultar Status do Pagamento (Polling / Real-time)
Permite ao frontend do checkout consultar o estado do pagamento Pix e o progresso da liquidação on-chain em USDT a cada 2 a 3 segundos.
Cabeçalhos HTTP (Headers)
Content-Typeapplication/json
Parâmetros de Rota (Path)
sessionTokenstringToken da sessão de checkout.
curl -X GET https://api.pactualpay.com.br/v1/public/checkout-sessions/cs_8fa7d9b2c4e109f5a3b2c1d8/status
{
"sessionStatus": "COMPLETED",
"useStatus": "PIX_CONFIRMED",
"status": "PAID",
"settlementStatus": "USDT_SETTLED",
"netAmountUsdt": "28.50",
"confirmedAt": "2026-09-15T01:31:14.000Z"
}/v1/public/payment-attempts/:id/simulate-paymentSimular Confirmação Pix (Sandbox / Testes)
Endpoint de ambiente de testes para simular a compensação instantânea do Pix pelo Banco Central e disparar a liquidação em USDT sem necessidade de transação bancária real.
Cabeçalhos HTTP (Headers)
Content-Typeapplication/json
Parâmetros de Rota (Path)
idstringIdentificador da tentativa de pagamento (attemptId).
curl -X POST https://api.pactualpay.com.br/v1/public/payment-attempts/pa_01H9A5Y2B1D7C3E8F4G/simulate-payment
{
"success": true,
"message": "Pagamento Pix simulado e confirmado com sucesso!",
"paymentStatus": "CONFIRMED",
"settlementStatus": "SETTLED",
"netAmountUsdt": "28.50"
}https://seunegocio.com.br/api/webhooks/pactualValidação de Assinatura Criptográfica HMAC
A PactualPay envia requisições HTTP POST para a URL cadastrada no seu painel ou link. Cada requisição contém o cabeçalho `X-PactualPay-Signature` gerado com HMAC SHA-256 do corpo bruto (raw body) utilizando o seu Webhook Secret.
Cabeçalhos HTTP (Headers)
Content-Typeapplication/json
# Exemplo de payload recebido pelo seu servidor
{
"event": "pix.payment.confirmed",
"id": "evt_01H9A7K92M4P6Q8R0S",
"created_at": "2026-09-15T01:31:14Z",
"data": {
"paymentLinkId": "pl_01H9A3X7B4C8D2E1F0G",
"amountBrl": "150.00",
"payer": {
"name": "Carlos Silva Oliveira",
"document": "123.456.789-00"
},
"settlement": {
"asset": "USDT",
"network": "TRC20",
"estimatedUsdt": "28.50"
}
}
}{
"received": true
}Padrão RFC 9457 Problem Details
Todas as falhas e erros de validação da API PactualPay retornam o padrão de indústria RFC 9457 com cabeçalho application/problem+json, permitindo que seu sistema identifique a causa exata de forma determinística.
{
"type": "https://pactualpay.com.br/errors/validation_error",
"title": "Validação Falhou",
"status": 400,
"detail": "O campo amountBrl deve ser numérico em BRL com 2 decimais (ex: \"150.00\").",
"code": "VALIDATION_ERROR",
"requestId": "req_01H9A9X4N7M2K5P8Q1R",
"invalidParams": [
{
"name": "amountBrl",
"reason": "Formato decimal inválido. Utilize string com duas casas."
}
]
}