> ## Documentation Index
> Fetch the complete documentation index at: https://base39-release-notes-06-mar.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Devolução

> Guia de como criar uma fatura de devolução.

<Steps>
  <Step title="Criar fatura">
    Primeiro, crie a fatura indicando que é uma devolução de pagamento. Indique a parcela e o valor que será devolvido.

    <Tabs>
      <Tab title="Pela API">
        ```bash
        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.
      </Tab>

      <Tab title="Pelo Console">
        <Snippet file="console-not-available.mdx" />
      </Tab>
    </Tabs>
  </Step>

  <Step title="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.

    <Tabs>
      <Tab title="Pela API">
        ```bash
        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.
      </Tab>

      <Tab title="Pelo Console">
        <Snippet file="console-not-available.mdx" />
      </Tab>
    </Tabs>
  </Step>

  <Step title="Atualizar status da intenção de pagamento">
    <Tabs>
      <Tab title="Pela API">
        Após criar a intenção de pagamento, você deve efetuar a transferência de devolução e atualizar o status.

        ```bash
        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.
      </Tab>

      <Tab title="Pelo Console">
        <Snippet file="console-not-available.mdx" />
      </Tab>
    </Tabs>
  </Step>
</Steps>
