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

# Criar Link

> Gere um link de pagamento para compartilhar com seus clientes

## Visão geral

Use este endpoint para gerar um link de pagamento que pode ser compartilhado com seus clientes via e-mail, WhatsApp ou redes sociais. O cliente acessa uma página de checkout hospedada pela Avantti Finance e pode pagar via PIX, cartão ou boleto, conforme habilitado.

## Endpoint

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.avanttifinance.com/v1/payment-links \
    -H "Authorization: Bearer {access_token}" \
    -H "Content-Type: application/json" \
    -d '{
      "amount": 15000,
      "description": "Consultoria - Sessão única",
      "payment_methods": ["pix", "card", "boleto"],
      "expires_at": "2025-02-01T23:59:59Z"
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.avanttifinance.com/v1/payment-links", {
    method: "POST",
    headers: {
      "Authorization": \`Bearer \${accessToken}\`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      amount: 15000,
      description: "Consultoria - Sessão única",
      payment_methods: ["pix", "card", "boleto"],
      expires_at: "2025-02-01T23:59:59Z"
    })
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.avanttifinance.com/v1/payment-links"
  headers = {
      "Authorization": f"Bearer {access_token}",
      "Content-Type": "application/json"
  }
  payload = {
      "amount": 15000,
      "description": "Consultoria - Sessão única",
      "payment_methods": ["pix", "card", "boleto"],
      "expires_at": "2025-02-01T23:59:59Z"
  }

  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```
</CodeGroup>

## Parâmetros do corpo

<ParamField body="amount" type="integer" required>
  Valor a ser cobrado, em centavos (ex: `15000` representa R\$ 150,00). Caso omitido, o valor pode ser definido pelo próprio pagador no checkout.
</ParamField>

<ParamField body="description" type="string" required>
  Descrição exibida na página de checkout, identificando o motivo da cobrança.
</ParamField>

<ParamField body="payment_methods" type="array" required>
  Lista dos métodos de pagamento habilitados para este link. Valores aceitos: `pix`, `card`, `boleto`.
</ParamField>

<ParamField body="expires_at" type="string">
  Data e hora de expiração do link, no formato ISO 8601. Após essa data, o link não aceitará novos pagamentos.
</ParamField>

<ParamField body="redirect_url" type="string">
  URL para a qual o cliente será redirecionado após concluir o pagamento.
</ParamField>

<ParamField body="metadata" type="object">
  Conjunto de pares chave-valor para armazenar informações adicionais sobre o link.
</ParamField>

## Resposta

<ResponseField name="id" type="string">
  Identificador único do link de pagamento, no formato `plink_xxxxxxxxxxxx`.
</ResponseField>

<ResponseField name="url" type="string">
  URL pública do checkout que pode ser compartilhada com o cliente.
</ResponseField>

<ResponseField name="amount" type="integer">
  Valor configurado para a cobrança, em centavos.
</ResponseField>

<ResponseField name="status" type="string">
  Status atual do link. Valores possíveis: `active`, `expired`, `disabled`.
</ResponseField>

<ResponseField name="created_at" type="string">
  Data e hora de criação do link, no formato ISO 8601.
</ResponseField>

### Exemplo de resposta

```json theme={null}
{
  "id": "plink_8f72a1b3c4d5",
  "url": "https://pay.avanttifinance.com/plink_8f72a1b3c4d5",
  "amount": 15000,
  "description": "Consultoria - Sessão única",
  "payment_methods": ["pix", "card", "boleto"],
  "status": "active",
  "expires_at": "2025-02-01T23:59:59Z",
  "created_at": "2025-01-15T10:30:00Z"
}
```

<Tip>
  Links de pagamento são ideais para vendas pontuais sem a necessidade de integração técnica — basta compartilhar a URL gerada.
</Tip>

## Erros comuns

| Código HTTP | Significado                                             |
| ----------- | ------------------------------------------------------- |
| 400         | Dados inválidos ou campos obrigatórios ausentes         |
| 401         | Token de autenticação inválido ou ausente               |
| 422         | Método de pagamento inválido ou `expires_at` no passado |

## Próximos passos

<CardGroup cols={2}>
  <Card title="Listar links" icon="list" href="/listar-filtrar">
    Consulte todos os links de pagamento criados.
  </Card>

  <Card title="Editar link" icon="focus" href="/editar">
    Atualize as configurações de um link existente.
  </Card>
</CardGroup>
