Fazer uma venda no boleto
Cria uma cobrança em boleto em cima de uma oferta existente. O método de pagamento é
definido pela própria rota, então não é preciso enviar payment_method no corpo.
O header Idempotency-Key é obrigatório. Em caso de timeout, reenvie a requisição
com a mesma chave: a resposta original será devolvida sem gerar uma segunda cobrança.
Esta rota não cria assinaturas: mesmo apontando para uma oferta recorrente, o
resultado é sempre uma cobrança avulsa (subscriptions sempre vem vazio na resposta).
Sem campo de autorização: o portal autentica por você com a sua chave de Homologação e as requisições rodam só no ambiente de testes.
Token de acesso devolvido por POST /auth/token. Envie como "Authorization: Bearer ". Vale 24 horas.
In: header
Header Parameters
length <= 255Código de uma oferta existente. Envie este campo ou offer — nunca os dois.
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.
11 <= valueCó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.
^PAO[0-9]{10}$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.
length <= 255Obrigatório quando a oferta é de produto físico (requires_shipping: true); nos demais casos é opcional e não é usado no processamento da venda.
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.
IP do comprador final. Melhora a análise antifraude.
User agent do comprador final.
Response Body
curl -X POST "https://pagpolar-api.creativecode.dev.br/v1/payments/boleto" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "offer_identifier": "PPP1234567890", "customer": { "name": "Fulano de Tal", "email": "fulano@exemplo.com", "document": "12345678909", "phone": "11999999999" }, "buyer_ip": "203.0.113.10" }'{
"data": {
"offer_identifier": "PPP1234567890",
"transactions": [
"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
],
"subscriptions": [],
"boleto": {
"barcode": "34191.79001 01043.510047 91020.150008 1 96610000015000",
"pdf_link": "https://boletos.pagpolar.com/a1b2c3d4.pdf"
}
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}Vendas
Cobre por PIX, boleto ou cartão e consulte as vendas.
Fazer uma venda no cartão de crédito POST
Cria uma cobrança em cartão de crédito em cima de uma oferta existente. O método de pagamento é definido pela própria rota, então não é preciso enviar `payment_method` no corpo. O header `Idempotency-Key` é **obrigatório**. Em caso de timeout, reenvie a requisição com a mesma chave: a resposta original será devolvida sem gerar uma segunda cobrança. A cobrança no cartão pode ser confirmada ou recusada pelo gateway na hora ou depois da resposta desta requisição. Aprovada, chega o webhook `TRANSACTION_PAID`. **Recusada, a venda fica `FAILED` e nenhum evento é enviado** — nem `TRANSACTION_CANCELED`. Confira o `status` consultando `GET /sales/{identifier}` com o `transactions[0]` da resposta. Esta rota **não cria assinaturas**: mesmo apontando para uma oferta recorrente, o resultado é sempre uma cobrança avulsa (`subscriptions` sempre vem vazio na resposta).