# Cobrança por boleto

URL: https://staging.pagpolar.com/docs/referencia/entidades/cobranca-boleto

> Corpo para criar uma venda por boleto.

Corpo para criar uma venda por boleto.

## Onde é enviado

* [`POST /payments/boleto`](/docs/referencia/vendas/create-boleto-payment)

## Campos

Campos anuláveis chegam com `null`. Campos com opções fixas listam todos os valores.

| Campo | Tipo | Obrigatório | Nulo | Descrição |
| --- | --- | --- | --- | --- |
| `offer_identifier` | texto | não | não | Código de uma oferta existente. Envie este campo **ou** `offer` — nunca os dois. Exemplo: `PPP1234567890`. |
| `offer` | objeto | não | não | Oferta informada na hora. Envie este objeto **ou** `offer_identifier` — nunca os dois. Reaproveita a oferta com mesmo produto, nome, valor e visibilidade; senão cria. |
| `offer.product_id` | texto (uuid) | sim | não | Produto da sua conta. |
| `offer.name` | texto | sim | não | Nome da oferta. Exemplo: `Consultoria avulsa`. |
| `offer.value` | inteiro | sim | não | Valor em centavos. Mínimo 500 (R$ 5,00). Exemplo: `4990`. |
| `offer.createOffer` | booleano | sim | não | `true`: oferta visível. `false`: oferta oculta, fora das listagens e usável só por esta API. Exemplo: `false`. |
| `quantity` | inteiro | não | não | — |
| `affiliate_identifier` | texto | não | não | Código do afiliado que trouxe a venda, no formato `PAO` seguido de 10 dígitos. Formato inválido retorna `400`. Código de afiliado inexistente, de outro produto, inativo ou sem a oferta liberada é **ignorado**: a venda é processada normalmente, sem afiliado. Não há cookie nem regra de primeiro ou último clique — vale o código enviado. Exemplo: `PAO1234567890`. |
| `external_reference` | texto | não | não | Referência do pedido no seu sistema (por exemplo, o número do pedido). Opcional. Depois você consulta a venda por ela em `GET /sales/{identifier}` e filtra em `GET /sales?external_reference=`. Pode se repetir entre pedidos: a consulta devolve a venda mais recente com essa referência. Exemplo: `PED-2026-0001`. |
| `customer` | objeto | sim | não | — |
| `customer.name` | texto | sim | não | Exemplo: `Fulano de Tal`. |
| `customer.email` | texto (email) | sim | não | Exemplo: `fulano@exemplo.com`. |
| `customer.document` | texto | sim | não | CPF (11 dígitos) ou CNPJ (14 dígitos), com ou sem pontuação: `12345678909` ou `123.456.789-09`. A API grava só os dígitos. Fora disso, 400. Exemplo: `12345678909`. |
| `customer.phone` | texto | sim | não | DDD e número, com 10 ou 11 dígitos (12 ou 13 com o código do país 55). Pontuação, espaços, parênteses e `+` são aceitos: `11999998888`, `(11) 99999-8888` ou `+55 11 99999-8888`. A API grava só os dígitos. Fora disso, 400. Exemplo: `11999999999`. |
| `address` | objeto | não | não | Obrigatório quando a oferta é de produto físico (`requires_shipping: true`); nos demais casos é opcional e não é usado no processamento da venda. |
| `address.street` | texto | sim | não | Exemplo: `Rua das Flores`. |
| `address.number` | texto | sim | não | Exemplo: `123`. |
| `address.complement` | texto | não | sim | Exemplo: `Apto 4B`. |
| `address.neighborhood` | texto | sim | não | Exemplo: `Centro`. |
| `address.city` | texto | sim | não | Exemplo: `São Paulo`. |
| `address.state` | texto | sim | não | Exemplo: `SP`. |
| `address.postal_code` | texto | sim | não | Exemplo: `01000-000`. |
| `shipping_option_id` | texto | não | não | Opção de frete escolhida, obrigatória quando a oferta é de produto físico (`requires_shipping: true`). Use o `id` devolvido por `GET /offers/{identifier}/shipping` para o mesmo CEP enviado em `address.postal_code`. Enviar este campo numa oferta que não exige frete retorna `400`. Exemplo: `wil_a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d`. |
| `buyer_ip` | texto | não | não | IP do comprador final. Melhora a análise antifraude. Exemplo: `203.0.113.10`. |
| `buyer_user_agent` | texto | não | não | User agent do comprador final. |
