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

# Referência

<Info>
  O Checkout é a página de pagamento utilizada pelo seu cliente. Após enviar os dados da cobrança, a API retorna uma URL que pode ser utilizada para redirecionar o usuário e concluir o pagamento.
</Info>

Crie cobranças Pix e consulte as cobranças pertencentes ao merchant associado à API key.

### Criar uma cobrança

Use `/checkouts`para criar uma cobrança, o valor total da cobrança é calculado a partir dos itens e suas quantidades.

Payload esperado para criação da cobrança

```json theme={null}
POST /checkouts
{
  "items": [ 					// obrigatório
    {
      "id": "string", 			// UUid do produto criado
      "quantity": 1 				// Quantidade do produto
    }
  ],
  "customerId": "string", 		// opcional - Uuid do cliente já cadastrado no FortalPay
  "externalId": "string", 		// opcional - ID do seu sistema
  "returnUrl": "string", 		// opcional - URL de retorno caso o cliente clique em voltar
  "completionUrl": "string",	// opcional - URL após o pagamento ser confirmado 
  "methods": ["PIX"], 			// opicional - Métodos que serão aceitos na cobrança
  "coupons": ["cupom1", "cupom2"], // opicional - cupons liberados para essa cobrança
   "metadata": {
    "customField": "value" 		// opcional - dados adicionais que serão retornados nos webhooks
  }
}
```

Resposta:

```json theme={null}
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "WAITING_CUSTOMER",
    "total": 0,
    "availablePaymentMethods": [
      "PIX"
    ],
    "checkoutUrl": "string",
    "completionUrl": "string",
    "returnUrl": "string",
    "externalId": "string",
    "metadata": {
      "customField": "value"
    },
    "customer": {
      "name": "string",
      "email": "string",
      "document": "string",
      "phone": "string"
    },
    "items": [
      {
        "productName": "string",
        "unitPrice": 0,
        "quantity": 0,
        "total": 0
      }
    ]
  }
}
```

<Check>
  Use a URL retornada no campo checkoutUrl para levar o cliente ao checkout e concluir o pagamento.
</Check>

<CardGroup cols={2} />

### Status do checkout

<Info>
  O campo **status representa o estado atual do checkout durante o fluxo de pagamento.**
</Info>

<Accordion title="WAITING_CUSTOMER" defaultOpen>
  O checkout foi criado e está aguardando que o cliente acesse a página de pagamento.
</Accordion>

<Accordion title="READY_TO_CHARGE">
  O cliente confirmou as informações e o checkout está pronto para gerar a cobrança.
</Accordion>

<Accordion title="PROCESSING_PAYMENT">
  O pagamento foi iniciado e está sendo processado.
</Accordion>

<Accordion title="PENDING_PAYMENT">
  A cobrança foi criada e está aguardando o pagamento do cliente.
</Accordion>

<Accordion title="PENDING_ANALYSIS">
  O pagamento está em análise antes da confirmação final.
</Accordion>

<Accordion title="PAID">
  O pagamento foi confirmado com sucesso.
</Accordion>

<Accordion title="EXPIRED">
  O prazo para pagamento expirou e o checkout não pode mais ser utilizado.
</Accordion>

<Accordion title="CANCELED">
  O checkout foi cancelado e não aceitará novos pagamentos.
</Accordion>

<Accordion title="FAILED">
  O pagamento não pôde ser concluído.
</Accordion>

<Accordion title="REFUNDED">
  O pagamento foi estornado total ou parcialmente.
</Accordion>

<Info>
  O status do checkout pode ser acompanhado consultando a API ou através dos Webhooks, permitindo que sua aplicação seja notificada automaticamente sempre que ocorrer uma alteração.
</Info>
