Cartão de crédito
Cobre no cartão com tokenização no navegador (sem ônus PCI). Pagamento síncrono, parcelamento 1-12x sem juros.
Referência rápida
Configuração de cartão
Antes de criar uma cobrança no cartão, busque a configuração de tokenização da Pagniv: a chave pública (publicKey) e o endpoint (tokenizeUrl) que você usa para tokenizar o cartão no navegador do comprador. O número do cartão nunca passa pela API da Pagniv. Sempre leia esses campos da resposta e nunca os fixe no código: assim, se a Pagniv trocar de infraestrutura de processamento, sua integração continua funcionando sem alteração. O campo cardEnabled indica se a sua conta está liberada para operar cartão.
Retorna a public key de tokenização, o endpoint de tokenização, o máximo de parcelas e se a conta está liberada para cartão.
/v1/charges/card-configAutenticação
Sua chave de API no header X-API-Key: sk_live_.... Gere em Dashboard → Integrações.
curl "https://api.pagniv.com/v1/charges/card-config" \
-H "X-API-Key: sk_live_sua_chave"{
"success": true,
"data": {
"publicKey": "pk_live_xxxxxxxxxxxxxxxx",
"maxInstallments": 12,
"tokenizeUrl": "https://tokenize.pagniv.com/v1/cards",
"cardEnabled": true
}
}Cartão precisa ser liberado para a conta
Operar cartão depende de liberação da Pagniv. Se cardEnabled for false, a criação de cobrança no cartão retorna 403 CARD_NOT_ENABLED. Fale com o suporte para habilitar.
Criar cobrança no cartão
Pagamento no cartão é síncrono: a resposta já vem aprovada (status PAID) ou recusada (HTTP 402 CARD_DECLINED). O fluxo tem dois passos.
Passo 1: tokenizar o cartão no navegador
No checkout do comprador, troque os dados do cartão por um token enviando-os para otokenizeUrl, autenticando com a publicKey (ambos vindos de GET /v1/charges/card-config). Isso mantém o número do cartão fora dos seus servidores. Use sempre os valores retornados pela config: não fixe URL nem chave no código.
# TOKENIZE_URL e PUBLIC_KEY vêm do GET /v1/charges/card-config
curl -X POST "$TOKENIZE_URL?appId=$PUBLIC_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "card",
"card": {
"number": "4000000000000010",
"holder_name": "Maria Silva",
"exp_month": 12,
"exp_year": 30,
"cvv": "123"
}
}'
# A resposta traz "id": "token_xxxxxxxx" (esse é o cardToken).Passo 2: criar a cobrança com o cardToken
Cria e captura a cobrança no cartão. Resposta síncrona.
/v1/chargesAutenticação
Sua chave de API no header X-API-Key: sk_live_.... Gere em Dashboard → Integrações.
Parâmetros
paymentMethodstringobrigatórioUse "CARD".
cardTokenstringobrigatórioToken gerado no passo 1.
amountnumberobrigatórioValor em centavos.
externalIdstringobrigatórioSeu identificador único do pedido.
payerNamestringobrigatórioNome do portador.
payerDocumentstringobrigatórioCPF ou CNPJ do pagador (antifraude).
installmentsintegeropcionalParcelas de 1 a 18 (default 1). Sem juros: o comprador paga o valor cheio.
statementDescriptorstringopcionalTexto na fatura do portador (até 13 caracteres).
payerPhonestringopcionalTelefone do portador. Recomendado: melhora a aprovação no antifraude.
descriptionstringopcionalDescrição da cobrança.
payerEmailstringopcionalE-mail do pagador.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentMethod | string | Sim | Use "CARD". |
cardToken | string | Sim | Token gerado no passo 1. |
amount | number | Sim | Valor em centavos. |
externalId | string | Sim | Seu identificador único do pedido. |
payerName | string | Sim | Nome do portador. |
payerDocument | string | Sim | CPF ou CNPJ do pagador (antifraude). |
installments | integer | Não | Parcelas de 1 a 18 (default 1). Sem juros: o comprador paga o valor cheio. |
statementDescriptor | string | Não | Texto na fatura do portador (até 13 caracteres). |
payerPhone | string | Não | Telefone do portador. Recomendado: melhora a aprovação no antifraude. |
description | string | Não | Descrição da cobrança. |
payerEmail | string | Não | E-mail do pagador. |
curl -X POST https://api.pagniv.com/v1/charges \
-H "X-API-Key: sk_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"paymentMethod": "CARD",
"cardToken": "token_xxxxxxxx",
"amount": 15000,
"externalId": "pedido-1234",
"payerName": "Maria Silva",
"payerDocument": "12345678900",
"installments": 3
}'{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"txid": "ch_abc123def456",
"paymentMethod": "CARD",
"amount": 15000,
"feeAmount": 599,
"netAmount": 14401,
"installments": 3,
"cardBrand": "visa",
"cardLastDigits": "0010",
"status": "PAID",
"createdAt": "2026-01-15T11:00:00Z"
}
}PCI fora do seu escopo de servidor
O cartão é tokenizado no navegador do comprador com a chave de tokenização da Pagniv. Nem a Pagniv nem o seu backend recebem o número do cartão. A liquidação do cartão segue o prazo D+settlementDays configurado para a sua conta.