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.

GET/v1/charges/card-config

Autenticação

X-API-Keystringheaderobrigatório

Sua chave de API no header X-API-Key: sk_live_.... Gere em Dashboard → Integrações.

/v1/charges/card-config
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.

Tokenização (client-side)
# 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.

POST/v1/charges

Autenticação

X-API-Keystringheaderobrigatório

Sua chave de API no header X-API-Key: sk_live_.... Gere em Dashboard → Integrações.

Parâmetros

paymentMethodstringobrigatório

Use "CARD".

cardTokenstringobrigatório

Token gerado no passo 1.

amountnumberobrigatório

Valor em centavos.

externalIdstringobrigatório

Seu identificador único do pedido.

payerNamestringobrigatório

Nome do portador.

payerDocumentstringobrigatório

CPF ou CNPJ do pagador (antifraude).

installmentsintegeropcional

Parcelas de 1 a 18 (default 1). Sem juros: o comprador paga o valor cheio.

statementDescriptorstringopcional

Texto na fatura do portador (até 13 caracteres).

payerPhonestringopcional

Telefone do portador. Recomendado: melhora a aprovação no antifraude.

descriptionstringopcional

Descrição da cobrança.

payerEmailstringopcional

E-mail do pagador.

/v1/charges
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.