Skip to main content
curl -X POST "https://api.chargefy.io/v1/payment-intents/pi_123/confirm" \
  -H "Authorization: Bearer {{API_KEY}}"
{
  "id": "pi_123",
  "object": "payment_intent",
  "amount": 10528,
  "amount_capturable": 0,
  "amount_details": {
    "installment_interest": 528,
    "subtotal": 10000,
    "total": 10528
  },
  "amount_received": 10528,
  "canceled_at": null,
  "cancellation_reason": null,
  "capture_method": "automatic",
  "client_secret": "pi_123_secret_abc",
  "confirmation_method": "automatic",
  "created_at": "2026-05-16T18:34:58Z",
  "currency": "brl",
  "customer": "cus_123",
  "invoice": null,
  "last_payment_error": null,
  "latest_charge": "ch_123",
  "livemode": true,
  "metadata": {},
  "next_action": null,
  "payment_method": "pm_123",
  "payment_method_options": {
    "credit_card": {
      "installments": {
        "amount_subtotal": 10000,
        "amount_total": 10528,
        "count": 3,
        "has_interest": true,
        "interest_amount": 528
      }
    }
  },
  "payment_method_types": [
    "credit_card"
  ],
  "setup_future_usage": null,
  "status": "succeeded",
  "updated_at": "2026-05-16T18:35:00Z"
}
Confirma um payment_intent e inicia a cobrança. A confirmação cria uma charge, que representa a tentativa de pagamento dentro do intent. Para cartão, use um payment_method salvo. Para PIX, informe payment_method_type: "pix" ou crie o intent apenas com payment_method_types: ["pix"]; a resposta traz o QR code em next_action.pix_display_qr_code e o status fica pending até a confirmação assíncrona. Para boleto, o mesmo padrão se aplica: payment_method_type: "boleto" (opcionalmente boleto_due_date em ISO YYYY-MM-DD). A resposta traz a linha digitável, código de barras e URL do PDF em next_action.boleto_display_details; o status fica pending até o pagamento ser confirmado pelo banco. Confirme um intent pelo próprio ID pi_*. Quando o intent foi criado por outro fluxo, trate esse fluxo como origem ou contexto, não como chave da tentativa de pagamento. O estado financeiro mora no payment_intent e nos webhooks de payment.intent.*. Não crie charges diretamente: para cobrar alguém, crie e confirme um payment_intent. Quando capture_method é manual, a confirmação de cartão autoriza o valor e retorna o intent em requires_capture com amount_capturable preenchido. Use POST /v1/payment-intents/:id/capture para capturar.
id
string
required
ID do payment intent (pi_*).
customer
string
Customer associado. Obrigatório se o intent foi criado sem customer.
payment_method
string
Payment method salvo para cartão. Obrigatório para cobrança de cartão se o intent ainda não tem método.
payment_method_type
string
Método a confirmar quando o intent permite mais de um método. Aceita credit_card ou pix.
curl -X POST "https://api.chargefy.io/v1/payment-intents/pi_123/confirm" \
  -H "Authorization: Bearer {{API_KEY}}"
{
  "id": "pi_123",
  "object": "payment_intent",
  "amount": 10528,
  "amount_capturable": 0,
  "amount_details": {
    "installment_interest": 528,
    "subtotal": 10000,
    "total": 10528
  },
  "amount_received": 10528,
  "canceled_at": null,
  "cancellation_reason": null,
  "capture_method": "automatic",
  "client_secret": "pi_123_secret_abc",
  "confirmation_method": "automatic",
  "created_at": "2026-05-16T18:34:58Z",
  "currency": "brl",
  "customer": "cus_123",
  "invoice": null,
  "last_payment_error": null,
  "latest_charge": "ch_123",
  "livemode": true,
  "metadata": {},
  "next_action": null,
  "payment_method": "pm_123",
  "payment_method_options": {
    "credit_card": {
      "installments": {
        "amount_subtotal": 10000,
        "amount_total": 10528,
        "count": 3,
        "has_interest": true,
        "interest_amount": 528
      }
    }
  },
  "payment_method_types": [
    "credit_card"
  ],
  "setup_future_usage": null,
  "status": "succeeded",
  "updated_at": "2026-05-16T18:35:00Z"
}

Confirmar PIX

curl -X POST "https://api.chargefy.io/v1/payment-intents/pi_pix_123/confirm" \
  -H "Authorization: Bearer {{API_KEY}}"
{
  "id": "pi_pix_123",
  "object": "payment_intent",
  "amount": 7500,
  "amount_capturable": 0,
  "amount_details": {
    "installment_interest": 0,
    "subtotal": 7500,
    "total": 7500
  },
  "amount_received": 0,
  "canceled_at": null,
  "cancellation_reason": null,
  "capture_method": "automatic",
  "client_secret": "pi_pix_123_secret_abc",
  "confirmation_method": "automatic",
  "created_at": "2026-05-16T18:34:58Z",
  "currency": "brl",
  "customer": null,
  "invoice": null,
  "last_payment_error": null,
  "latest_charge": "ch_pix_123",
  "livemode": true,
  "metadata": {},
  "next_action": {
    "pix_display_qr_code": {
      "expires_at": "2026-05-16T19:35:00Z",
      "qr_code": "00020101021226860014br.gov.bcb.pix...",
      "qr_code_url": null
    },
    "type": "pix_display_qr_code"
  },
  "payment_method": null,
  "payment_method_options": {},
  "payment_method_types": [
    "pix"
  ],
  "setup_future_usage": null,
  "status": "pending",
  "updated_at": "2026-05-16T18:35:00Z"
}
{
  "error": {
    "code": "invalid_request",
    "message": "payment_method is required for credit_card confirmation.",
    "param": "payment_method",
    "type": "invalid_request_error"
  }
}

Erros comuns

StatuscodeQuando ocorre
400invalid_requestFalta customer ou payment_method para cartão, ou falta payment_method_type quando há múltiplos métodos.
402payment_failedA tentativa de pagamento foi recusada. Consulte last_payment_error no payment intent para o motivo granular.
409resource_state_conflictO payment intent não pode mais ser confirmado.