VamPay
VamPay
POST/charges

Cobrar no Cartão ou Boleto

Gera uma cobrança no cartão de crédito (link de pagamento seguro) ou um boleto bancário. Quando o pagador paga, o valor cai em reais no seu saldo e o seu webhook recebe transaction.completed.

Cartão: crédito à vista. O pagador preenche o cartão numa página segura e a confirmação é na hora; o valor entra no saldo na hora e fica disponível para saque em 30 dias (recebimento em D+30). Boleto: vence em 3 dias úteis e compensa em até 3 dias úteis depois de pago. Taxas e limites de cada forma em GET /charges/methods. Não funciona no modo sandbox.

Headers

ParâmetroTipo
X-API-Key*string
X-Idempotency-Keystring

Request Body

ParâmetroTipo
method*string
amount*number
payerNamestring
payerDocumentstring
payerEmailstring
payerPhonestring
descriptionstring
feeToCustomerboolean
externalReferencestring
completionUrlstring
returnUrlstring

Exemplo: cartão de crédito

curlbash
curl -X POST "https://api.vampay.com.br/charges" \
  -H "X-API-Key: vampay_sua_api_key" \
  -H "X-Idempotency-Key: pedido-8812" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "CARD",
    "amount": 150,
    "description": "Pedido #8812",
    "externalReference": "8812",
    "completionUrl": "https://sualoja.com/obrigado"
  }'
201 Createdjson
{
  "success": true,
  "data": {
    "id": "6ad11c0e5b3f4a0012c9e7a1",
    "method": "CARD",
    "status": "PENDING",
    "amount": 150,
    "fee": 5.85,
    "netAmount": 144.15,
    "feeToCustomer": false,
    "description": "Pedido #8812",
    "externalReference": "8812",
    "paymentLink": "https://vampay.com.br/pay/6ad11c0e5b3f4a0012c9e7a1",
    "card": {
      "checkoutUrl": "https://app.abacatepay.com/pay/bill_k8pqr2mnvx",
      "brand": null,
      "last4": null
    },
    "boleto": null,
    "refunded": false,
    "createdAt": "2026-10-23T14:02:11.000Z",
    "completedAt": null
  }
}

Mande o pagador pro paymentLink (página pronta da VamPay) ou direto pro card.checkoutUrl. Depois de pagar, ele volta pra sua completionUrl.

Exemplo: boleto

curlbash
curl -X POST "https://api.vampay.com.br/charges" \
  -H "X-API-Key: vampay_sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "BOLETO",
    "amount": 250,
    "payerName": "Mariana Costa",
    "payerDocument": "98765432100",
    "description": "Mensalidade outubro"
  }'
201 Createdjson
{
  "success": true,
  "data": {
    "id": "6ad11d4a5b3f4a0012c9e7b9",
    "method": "BOLETO",
    "status": "PENDING",
    "amount": 250,
    "fee": 2.5,
    "netAmount": 247.5,
    "paymentLink": "https://vampay.com.br/pay/6ad11d4a5b3f4a0012c9e7b9",
    "card": null,
    "boleto": {
      "digitableLine": "23793.38128 60007.827263 37000.963779 4 10010000025000",
      "barCode": "23793381286000782726337000963779410010000025000",
      "url": "https://app.abacatepay.com/pay/bole_k8pqr2mnvx/boleto",
      "expiresAt": "2026-10-28T02:59:59.999Z"
    },
    "refunded": false,
    "createdAt": "2026-10-23T14:05:40.000Z",
    "completedAt": null
  }
}

Mostre a boleto.digitableLine (linha digitável) e o link boleto.url (PDF), ou mande o pagador pro paymentLink.

Webhook

Quando o pagamento confirma, seu webhook recebe transaction.completed, igual a um PIX pago, com paymentMethod = CARD ou BOLETO e o seu externalReference.

transaction.completedjson
{
  "event": "transaction.completed",
  "data": {
    "id": "6ad11c0e5b3f4a0012c9e7a1",
    "externalId": "bill_k8pqr2mnvx",
    "externalReference": "8812",
    "type": "DEPOSIT",
    "paymentMethod": "CARD",
    "status": "COMPLETED",
    "amount": 150,
    "netAmount": 144.15,
    "payerName": "João Silva",
    "completedAt": "2026-10-23T14:03:02.000Z"
  }
}

Erros

ParâmetroTipo
400erro
400 SANDBOX_UNSUPPORTEDerro
429erro
503 CHARGES_UNAVAILABLEerro