VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

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.

Pontos-chave
  • Exige o módulo pagarme ligado na loja. Desligado, as rotas respondem 403 com {"error":"module_disabled","module":"pagarme"}.
  • Exige o privilégio manage_payments ou view_payments. A mesma regra vale para ler e para agir: quem só tem view_payments também consegue capturar e estornar.
  • Valores em dinheiro são inteiros em centavos (4990 = R$ 49,90).
  • Há dois registros de pagamento: as transações (/transactions, o caminho atual do checkout) e as cobranças (/charges, o caminho antigo). Capturar só funciona em cobranças; estornar funciona nos dois.
  • Quase todo erro destas rotas volta como 500, inclusive "não encontrado" e validação. Leia o detail.
  • As chaves secretas nunca são devolvidas por inteiro pelo GET /config, mas o PUT /config as devolve em claro (veja a página de configuração).

Como funciona

O ciclo de uma cobrança

Pendente→Pago→Reembolsado
statusSignificado
pendingCobrança criada, aguardando pagamento (PIX, boleto) ou captura.
paidPaga ou capturada.
failedRecusada ou com erro de processamento.
canceledCancelada.
refundedEstornada.
chargebackContestada 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

  1. Informe as chaves
    PUT /config com as chaves da conta Pagar.me. Use as de teste (sk_test_) com sandbox: true até validar.
  2. Teste a conexão
    POST /test-connection confirma que a chave autentica.
  3. Ajuste o de-para de status
    GET /status-map e, se preciso, PUT /status-map para que "pago" caia no status certo do seu fluxo de pedidos.
  4. Cadastre os recebedores
    Em marketplace, POST /recipients/vendor liga cada seller a um recebedor com conta bancária.
  5. Acompanhe
    GET /transactions, GET /charges e GET /webhooks mostram 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 caminhoPara que serveAuthPágina
GET /api/v1/admin/pagarme/configLê a configuração (segredos mascarados)adminConfiguração
PUT /api/v1/admin/pagarme/configGrava a configuraçãoadminConfiguração
POST /api/v1/admin/pagarme/test-connectionTesta a chaveadminConfiguração
GET /api/v1/admin/pagarme/status-mapLê o de-para de statusadminDe-para de status
PUT /api/v1/admin/pagarme/status-mapGrava o de-paraadminDe-para de status
POST /api/v1/admin/pagarme/status-map/ai-suggestSugere um de-para com IAadminDe-para de status
GET /api/v1/admin/pagarme/transactionsLista transaçõesadminTransações
GET /api/v1/admin/pagarme/transactions/{id}Detalha uma transaçãoadminTransações
GET /api/v1/admin/pagarme/chargesLista cobrançasadminCobranças
POST /api/v1/admin/pagarme/charges/{id}/captureCaptura uma cobrança autorizadaadminCobranças
POST /api/v1/admin/pagarme/charges/{id}/refundEstorna total ou parcialmenteadminCobranças
GET /api/v1/admin/pagarme/charges/{id}/splitsMostra o split de uma cobrançaadminCobranças
GET /api/v1/admin/pagarme/recipientsLista recebedores no gatewayadminRecebedores
POST /api/v1/admin/pagarme/recipientsCria um recebedoradminRecebedores
GET /api/v1/admin/pagarme/recipients/{id}Detalha um recebedoradminRecebedores
PUT /api/v1/admin/pagarme/recipients/{id}Altera um recebedoradminRecebedores
POST /api/v1/admin/pagarme/recipients/vendorCria o recebedor e liga a um selleradminRecebedores
GET /api/v1/admin/pagarme/reconciliationCompara pedidos com repasses de um selleradminConciliação
GET /api/v1/admin/pagarme/webhooksLista os webhooks recebidosadminWebhooks
POST /api/v1/admin/pagarme/webhooks/{id}/reprocessReprocessa um webhookadminWebhooks

Erros comuns

  1. Esperar 404 em "não encontrado". Transação ou cobrança inexistente volta como 500. Confira o id antes de investigar o gateway.
  2. 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_...).
  3. 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.
  4. 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). Confira exists_in_registry no GET /status-map.
  5. Reprocessar um webhook sem pensar no efeito. O reprocessamento roda de novo a regra que muda o status do pedido.
  6. Guardar a resposta do PUT /config. Ela traz as chaves secretas em claro. Não registre nem repasse esse corpo.
  7. Esquecer o vendor_id na conciliação. A rota exige o seller; sem ele responde 400.

Próximos passos

Configuração
Chaves, ambiente e teste de conexão.
De-para de status
Do status do gateway ao status do pedido.
Cobranças
Capturar, estornar e ver o split.
Recebedores
Contas bancárias dos sellers.
Anterior
Pedidos programados
Próxima
Configuração do Pagar.me
Nesta página
  • Como funciona
  • O ciclo de uma cobrança
  • Fluxo típico de implantação
  • Conceitos importantes
  • Transação e cobrança
  • Recebedor e split
  • Chaves e ambiente
  • Endpoints
  • Erros comuns
  • Próximos passos