Pagar.me: pagamentos e split
Como a loja cobra por cartão, boleto e PIX com o gateway Pagar.me, divide o valor entre sellers e concilia os repasses.
Pagar.me é um gateway de pagamento brasileiro (do grupo Stone). A plataforma usa o gateway para cobrar cartão de crédito, boleto e PIX no checkout. Em lojas com vários sellers (marketplace) ele também faz o split: a cobrança é dividida na origem entre os recebedores (recipients) dos sellers e o da loja (a comissão), e cada um recebe o seu valor direto do gateway.
Estas são as rotas do administrador da loja para configurar o gateway e acompanhar o dinheiro. O checkout em si é feito pelas rotas da vitrine; aqui você enxerga e age depois que a cobrança existe.
Como funciona
O ciclo de uma cobrança
status | Significado |
|---|---|
pending | Cobrança criada, aguardando pagamento (PIX, boleto) ou captura. |
paid | Paga ou capturada. |
failed | Recusada ou com erro de processamento. |
canceled | Cancelada. |
refunded | Estornada. |
chargeback | Contestada pelo portador do cartão. |
O gateway avisa a plataforma de cada mudança por webhook. A plataforma traduz o status da cobrança em um status do pedido pela tabela De-para de status. Cada webhook recebido fica guardado e pode ser conferido e reprocessado em Webhooks.
Fluxo típico de implantação
- Informe as chaves
PUT /configcom as chaves da conta Pagar.me. Use as de teste (sk_test_) comsandbox: trueaté validar. - Teste a conexão
POST /test-connectionconfirma que a chave autentica. - Ajuste o de-para de status
GET /status-mape, se preciso,PUT /status-mappara que "pago" caia no status certo do seu fluxo de pedidos. - Cadastre os recebedoresEm marketplace,
POST /recipients/vendorliga cada seller a um recebedor com conta bancária. - Acompanhe
GET /transactions,GET /chargeseGET /webhooksmostram o que entrou e o que falhou.
Conceitos importantes
Transação e cobrança
A transação (transactions) é o registro do checkout atual: um pedido no gateway, com o método, o valor e a resposta completa do gateway. A cobrança (charges) é o registro do caminho antigo, uma cobrança avulsa por pedido. Uma loja pode ter registros nos dois. O estorno aceita ambos; a captura (para cartão autorizado e ainda não capturado) só existe para cobranças.
Recebedor e split
O recebedor é a conta de quem recebe: nome, documento (CPF ou CNPJ) e conta bancária. Cada seller que vende com split precisa de um. O recebedor da loja (marketplace_recipient_id na configuração) fica com a comissão. Na cobrança, o valor é repartido em linhas (splits) do tipo flat (valor fixo em centavos) ou percentage (pontos-base: 1000 = 10%).
Chaves e ambiente
Há uma chave secreta (api_key, começa com sk_), uma chave pública (public_key, pk_) usada no navegador para tokenizar cartões, e uma chave secreta de webhook (secret_key) usada para conferir a assinatura dos avisos. sandbox: true aponta para o ambiente de testes do gateway.
Endpoints
| Método e caminho | Para que serve | Auth | Página |
|---|---|---|---|
GET /api/v1/admin/pagarme/config | Lê a configuração (segredos mascarados) | admin | Configuração |
PUT /api/v1/admin/pagarme/config | Grava a configuração | admin | Configuração |
POST /api/v1/admin/pagarme/test-connection | Testa a chave | admin | Configuração |
GET /api/v1/admin/pagarme/status-map | Lê o de-para de status | admin | De-para de status |
PUT /api/v1/admin/pagarme/status-map | Grava o de-para | admin | De-para de status |
POST /api/v1/admin/pagarme/status-map/ai-suggest | Sugere um de-para com IA | admin | De-para de status |
GET /api/v1/admin/pagarme/transactions | Lista transações | admin | Transações |
GET /api/v1/admin/pagarme/transactions/{id} | Detalha uma transação | admin | Transações |
GET /api/v1/admin/pagarme/charges | Lista cobranças | admin | Cobranças |
POST /api/v1/admin/pagarme/charges/{id}/capture | Captura uma cobrança autorizada | admin | Cobranças |
POST /api/v1/admin/pagarme/charges/{id}/refund | Estorna total ou parcialmente | admin | Cobranças |
GET /api/v1/admin/pagarme/charges/{id}/splits | Mostra o split de uma cobrança | admin | Cobranças |
GET /api/v1/admin/pagarme/recipients | Lista recebedores no gateway | admin | Recebedores |
POST /api/v1/admin/pagarme/recipients | Cria um recebedor | admin | Recebedores |
GET /api/v1/admin/pagarme/recipients/{id} | Detalha um recebedor | admin | Recebedores |
PUT /api/v1/admin/pagarme/recipients/{id} | Altera um recebedor | admin | Recebedores |
POST /api/v1/admin/pagarme/recipients/vendor | Cria o recebedor e liga a um seller | admin | Recebedores |
GET /api/v1/admin/pagarme/reconciliation | Compara pedidos com repasses de um seller | admin | Conciliação |
GET /api/v1/admin/pagarme/webhooks | Lista os webhooks recebidos | admin | Webhooks |
POST /api/v1/admin/pagarme/webhooks/{id}/reprocess | Reprocessa um webhook | admin | Webhooks |
Erros comuns
- Esperar
404em "não encontrado". Transação ou cobrança inexistente volta como500. Confira o id antes de investigar o gateway. - Usar o id errado. A captura e a lista de splits recebem o id interno (UUID) da cobrança. O estorno aceita o id interno ou o id do gateway (
ch_...). - Estornar mais que o saldo. O valor do estorno não pode passar do que ainda resta para estornar. Estorno parcial deixa a cobrança como paga.
- Mapear "pago" para um status que não existe na loja. O de-para é gravado mesmo assim, mas na hora de pagar o pedido cai num status padrão antigo (
processing). Confiraexists_in_registrynoGET /status-map. - Reprocessar um webhook sem pensar no efeito. O reprocessamento roda de novo a regra que muda o status do pedido.
- Guardar a resposta do
PUT /config. Ela traz as chaves secretas em claro. Não registre nem repasse esse corpo. - Esquecer o
vendor_idna conciliação. A rota exige o seller; sem ele responde400.