> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upag.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Payload — Payment

> Estrutura do objeto data nos webhooks de pagamento

Quando o evento é do tipo `payment.*`, o campo `data` da requisição de webhook contém um objeto pagamento no formato abaixo.

## <Icon icon="folder-tree" type="solid" /> Estrutura

```json theme={null}
{
  "id": "pay_xyz789abc",
  "livemode": false,
  "customer": "cus_ahwDXrgYvur89iPs",
  "paymentMethod": "pm_abc123xyz",
  "amount": 10000,
  "refundedAmount": 0,
  "gross": 10000,
  "mdr": 0,
  "net": 10000,
  "interest": 0,
  "currency": "BRL",
  "status": "approved",
  "description": null,
  "pixQrCode": null,
  "refuseReason": null,
  "installments": 1,
  "createdAt": 1731622178441,
  "updatedAt": 1731622178441,
  "dueAt": null
}
```

## Atributos

<AccordionGroup>
  <Accordion title="id:">
    ```json {2} theme={null}
    {
      "id": "pay_xyz789abc",
    }
    ```

    `id` : <u> string. </u> <br />
    Identificador único do pagamento, começando com `pay_`
  </Accordion>

  <Accordion title="livemode:">
    ```json {2} theme={null}
    {
      "livemode": false,
    }
    ```

    `livemode` : <u> boolean. </u> <br />
    Indica se o pagamento está em modo de produção (`true`) ou teste (`false`)
  </Accordion>

  <Accordion title="customer:">
    ```json {2} theme={null}
    {
      "customer": "cus_ahwDXrgYvur89iPs",
    }
    ```

    `customer` : <u> string. </u> <br />
    ID do cliente, começando com `cus_`
  </Accordion>

  <Accordion title="paymentMethod:">
    ```json {2} theme={null}
    {
      "paymentMethod": "pm_abc123xyz",
    }
    ```

    `paymentMethod` : <u> string. </u> <br />
    ID do método de pagamento, começando com `pm_`
  </Accordion>

  <Accordion title="amount:">
    ```json {2} theme={null}
    {
      "amount": 10000,
    }
    ```

    `amount` : <u> number. </u> <br />
    Valor do pagamento em centavos
  </Accordion>

  <Accordion title="refundedAmount:">
    ```json {2} theme={null}
    {
      "refundedAmount": 0,
    }
    ```

    `refundedAmount` : <u> number. </u> <br />
    Valor já reembolsado em centavos
  </Accordion>

  <Accordion title="gross:">
    ```json {2} theme={null}
    {
      "gross": 10000,
    }
    ```

    `gross` : <u> number. </u> <br />
    Valor bruto do pagamento em centavos (antes das taxas)
  </Accordion>

  <Accordion title="mdr:">
    ```json {2} theme={null}
    {
      "mdr": 0,
    }
    ```

    `mdr` : <u> number. </u> <br />
    Taxa MDR (Merchant Discount Rate) em centavos
  </Accordion>

  <Accordion title="net:">
    ```json {2} theme={null}
    {
      "net": 10000,
    }
    ```

    `net` : <u> number. </u> <br />
    Valor líquido do pagamento em centavos (após taxas)
  </Accordion>

  <Accordion title="interest:">
    ```json {2} theme={null}
    {
      "interest": 0,
    }
    ```

    `interest` : <u> number. </u> <br />
    Valor de juros em centavos (para parcelamentos)
  </Accordion>

  <Accordion title="currency:">
    ```json {2} theme={null}
    {
      "currency": "BRL",
    }
    ```

    `currency` : <u> string. </u> <br />
    Código da moeda (ex.: `BRL`)
  </Accordion>

  <Accordion title="status:">
    ```json {2} theme={null}
    {
      "status": "approved",
    }
    ```

    `status` : <u> string. </u> <br />
    Status atual do pagamento

    <Info>
      | Status       | Descrição            |
      | ------------ | -------------------- |
      | `incomplete` | Pagamento incompleto |
      | `pending`    | Pagamento pendente   |
      | `approved`   | Pagamento aprovado   |
      | `refused`    | Pagamento recusado   |
      | `refunded`   | Valor reembolsado    |
      | `failed`     | Pagamento falhou     |
    </Info>
  </Accordion>

  <Accordion title="description:">
    ```json {2} theme={null}
    {
      "description": null,
    }
    ```

    `description` : <u> string | null. </u> <br />
    Descrição do pagamento. Pode ser `null`
  </Accordion>

  <Accordion title="pixQrCode:">
    ```json {2} theme={null}
    {
      "pixQrCode": null,
    }
    ```

    `pixQrCode` : <u> string | null. </u> <br />
    Código QR do PIX para pagamento. Pode ser `null` se não for PIX
  </Accordion>

  <Accordion title="refuseReason:">
    ```json {2} theme={null}
    {
      "refuseReason": null,
    }
    ```

    `refuseReason` : <u> string | null. </u> <br />
    Motivo da recusa do pagamento. Pode ser `null` se não foi recusado
  </Accordion>

  <Accordion title="installments:">
    ```json {2} theme={null}
    {
      "installments": 1,
    }
    ```

    `installments` : <u> number. </u> <br />
    Número de parcelas. Padrão: `1`
  </Accordion>

  <Accordion title="createdAt:">
    ```json {2} theme={null}
    {
      "createdAt": 1731622178441,
    }
    ```

    `createdAt` : <u> number. </u> <br />
    Timestamp Unix indicando quando o pagamento foi criado
  </Accordion>

  <Accordion title="updatedAt:">
    ```json {2} theme={null}
    {
      "updatedAt": 1731622178441,
    }
    ```

    `updatedAt` : <u> number. </u> <br />
    Timestamp Unix indicando quando o pagamento foi atualizado pela última vez
  </Accordion>

  <Accordion title="dueAt:">
    ```json {2} theme={null}
    {
      "dueAt": null,
    }
    ```

    `dueAt` : <u> number | null. </u> <br />
    Timestamp Unix indicando a data de vencimento do pagamento. Pode ser `null`
  </Accordion>
</AccordionGroup>
