1

Criar fatura

Primeiro, crie a fatura indicando que é uma devolução de pagamento. Indique a parcela e o valor que será devolvido.

curl --request POST \
    --url https://api.base39.io/v1/invoices \
    --header 'accept: application/json' \
    --header 'content-type: application/json' \
    --data '
    {
        "type": "pay_off",
        "items": [
            {
                "installment": "inst_...",
                "amount": -1000
            }
        ],
        "autoFinalize": true,
        "dueDate": "2023-11-15",
        "payer": "cust_...",
        "beneficiary": "fund_...",
        "description": "Devolução de pagamento duplicado"
    }'
  • type: Tipo da fatura (neste exemplo, pay_off indica um acerto de contas).
  • items: Detalhes da devolução.
  • autoFinalize: Indica se a fatura deve ser finalizada automaticamente após sua criação.
  • dueDate: Data de vencimento da fatura (pode ser a data limite de devolução).
  • payer: Identificador do pagador.
  • beneficiary: Identificador do beneficiário.
  • description: Descrição da fatura.
2

Criar intenção de pagamento

Você deve criar uma intenção de pagamento para identificar para qual conta bancária ou PIX que será feito a devolução. Isso ajuda a garantir que os fundos sejam transferidos de volta para a conta correta.

curl --request POST \
    --url 'https://api.base39.io/v1/payment-intents?invoice=inv...' \
    --header 'accept: application/json' \
    --header 'content-type: application/json' \
    --data '
    {
        "method": "payment_method",
        "methodData": {
            "type": "payment_method",
            "paymentMethod": "pm_...",
            "description": "Conta bancária"
        },
        "amount": -1000,
        "expireAt": "2023-10-31"
    }'

Parâmetros do corpo da requisição:

  • method: Método de pagamento.
  • methodData.type: Tipo de método de pagamento.
  • methodData.paymentMethod: ID do método de pagamento.
  • methodData.description: Descrição do método de pagamento.
  • amount: Quantidade a ser reembolsada. (Note que é um valor negativo para indicar devolução.)
  • expireAt: Data de validade da intenção de pagamento.
3

Atualizar status da intenção de pagamento

Após criar a intenção de pagamento, você deve efetuar a transferência de devolução e atualizar o status.

curl --request POST \
    --url https://api.base39.io/v1/payment-intents/pi_../pay \
    --header 'accept: application/json' \
    --header 'content-type: application/json' \
    --data '
    {
        "amountPaid": -1000,
        "paidAt": "2023-10-18"
    }'

Parâmetros do corpo da requisição:

  • amountPaid: Quantidade reembolsada. (Novamente, o valor é negativo para indicar devolução.)
  • paidAt: Data em que o reembolso foi realizado.