Cobranças do Pagar.me
Lista cobranças, captura cartão autorizado, estorna total ou parcialmente e mostra como o valor foi dividido entre os recebedores.
Uma cobrança é o pedido de pagamento feito ao gateway para um pedido da loja. Estas rotas mostram as cobranças e permitem as três ações financeiras: capturar (efetivar um cartão que só foi autorizado), estornar (devolver o dinheiro) e ver o split (como o valor foi repartido). Exigem o módulo pagarme e o privilégio manage_payments ou view_payments.
Listar cobranças
/api/v1/admin/pagarme/chargesAdminLista as cobranças do Pagar.me
Parâmetros de consulta
statusstringpendingpaidfailedcanceledrefundedchargebackpayment_methodstringcredit_cardboletopixorder_iduuidpageintegerpadrão: 1per_pageintegerpadrão: 20Exemplo de requisição
curl "$BASE_URL/api/v1/admin/pagarme/charges?payment_method=pix&per_page=20" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"charges": [
{
"id": "6db0e009-9448-4732-863a-06ba74c9bd04",
"order_id": "a5d86a76-7d89-4646-8edc-29447aa2ec37",
"pagarme_id": "ch_MVDQA29sOcMGxG5g",
"payment_method": "pix",
"status": "failed",
"amount": 9000,
"pix_expiry": "2026-07-13T23:52:27Z",
"created_at": "2026-07-13T22:52:27Z",
"updated_at": "2026-07-13T22:52:27Z"
}
],
"total": 3,
"page": 1,
"per_page": 20,
"total_pages": 1
}Campos da resposta
chargesarraynull quando vazio.totalintegerpageintegerper_pageintegertotal_pagesintegeriduuidorder_iduuidpagarme_idstringch_...).payment_methodstringcredit_cardboletopixstatusstringpendingpaidfailedcanceledrefundedchargebackamountintegerboleto_pdfstringboleto_barcodestringboleto_linestringboleto_expirystringpix_qr_codestringpix_qr_code_urlstringpix_expirystringcard_brandstringcard_last_digitsstringpaid_atstringcreated_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token | {"error":"missing authorization header"} |
| 403 | Sem privilégio | {"error":"insufficient privileges","privilege_required_any":["manage_payments","view_payments"]} |
| 403 | Módulo desligado | {"error":"module_disabled","module":"pagarme"} |
| 500 | Falha de consulta (inclui order_id que não é UUID) | {"error":"failed to list charges","detail":"..."} |
Capturar uma cobrança
Com cartão, o dinheiro pode ser apenas reservado (autorizado) e só sai da conta do cliente na captura. Esta rota captura uma cobrança que está autorizada, no valor total ou em parte, e marca a cobrança como paga.
/api/v1/admin/pagarme/charges/{id}/captureAdminCaptura uma cobrança autorizada
Parâmetros de caminho
iduuidobrigatórioid da listagem, não o ch_...).Corpo da requisição (opcional)
amountintegerpadrão: 00 ou ausente captura o valor total.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/pagarme/charges/6db0e009-9448-4732-863a-06ba74c9bd04/capture" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "amount": 0 }'Resposta
{
"id": "6db0e009-9448-4732-863a-06ba74c9bd04",
"order_id": "a5d86a76-7d89-4646-8edc-29447aa2ec37",
"pagarme_id": "ch_MVDQA29sOcMGxG5g",
"payment_method": "credit_card",
"status": "paid",
"amount": 9000,
"card_brand": "visa",
"card_last_digits": "4242",
"paid_at": "2026-10-11T23:05:12Z",
"created_at": "2026-10-11T23:04:30Z",
"updated_at": "2026-10-11T23:05:12Z"
}A resposta é a cobrança já atualizada, com os campos da listagem.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Cobrança inexistente, id que não é UUID, gateway recusou ou fora do ar | {"error":"failed to capture charge","detail":"pagarme: capture api returned 422: ..."} |
Estornar uma cobrança
Devolve o dinheiro ao cliente, no valor total que ainda resta estornar ou em parte. Só cobranças pagas podem ser estornadas. Um estorno parcial mantém a cobrança como paga, para que o restante possa ser estornado depois; o total estornado fica em refund_amount_cents (transações).
/api/v1/admin/pagarme/charges/{id}/refundAdminEstorna uma cobrança paga
Parâmetros de caminho
idstringobrigatórioch_...). Este último é o que o checkout atual grava, e serve para estornar uma transação pelo seu charge_id.Corpo da requisição (opcional)
amountintegerpadrão: 00 ou ausente estorna todo o saldo ainda não estornado. Não pode passar do saldo.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/pagarme/charges/ch_Z1dxXYKcNWcnw547/refund" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "amount": 2500 }'Resposta
{
"id": "6c1b45aa-1acd-4576-95ac-1c684454bd31",
"order_id": "6c1b45aa-1acd-4576-95ac-1c684454bd31",
"pagarme_id": "ch_Z1dxXYKcNWcnw547",
"payment_method": "credit_card",
"status": "paid",
"amount": 68040,
"card_brand": "visa",
"card_last_digits": "4242",
"paid_at": "2026-07-14T06:52:31Z",
"created_at": "2026-07-14T06:50:07Z",
"updated_at": "2026-10-11T23:10:00Z"
}A resposta é a cobrança relida depois do estorno. Num estorno parcial o status continua paid; no total ele passa para o estado de estornado.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Cobrança não encontrada | {"error":"failed to refund charge","detail":"pagarme: charge ch_x not found"} |
| 500 | Cobrança que não está paga | {"error":"failed to refund charge","detail":"pagarme: cannot refund charge with status \"pending\", must be 'paid'"} |
| 500 | Valor acima do saldo | {"error":"failed to refund charge","detail":"pagarme: refund amount 99999 exceeds charge amount 68040"} |
| 500 | Gateway recusou ou fora do ar | {"error":"failed to refund charge","detail":"pagarme: refund api returned 4xx: ..."} |
Ver o split de uma cobrança
Mostra como o valor da cobrança foi dividido entre os recebedores (os sellers e a comissão da loja).
/api/v1/admin/pagarme/charges/{id}/splitsAdminMostra o split de uma cobrança
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/admin/pagarme/charges/6db0e009-9448-4732-863a-06ba74c9bd04/splits" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"splits": [
{
"recipient_id": "re_cm0sellerexampleexample0001",
"amount": 8100,
"type": "flat",
"percentage": 0,
"vendor_id": "ec5e10b3-8cb1-43e9-9aa8-964b64eda8de"
},
{
"recipient_id": "re_cm0exampleexampleexample0",
"amount": 900,
"type": "percentage",
"percentage": 1000,
"is_marketplace": true
}
],
"total": 2
}Campos da resposta
splitsarraynull quando a cobrança não teve split.totalintegerrecipient_idstringre_...).amountintegertypestringflatpercentagepercentageinteger1000 = 10%). 0 em linhas fixas.vendor_iduuidis_marketplacebooleantrue na linha da comissão da loja.Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha de consulta, ou id que não é UUID | {"error":"failed to get charge splits","detail":"..."} |
Um UUID válido sem split devolve {"splits":null,"total":0}.