Recebedores do split
Cria, consulta e altera os recebedores do Pagar.me e liga cada seller ao seu recebedor para o split de pagamentos.
Para dividir uma cobrança entre sellers, o gateway precisa saber para onde mandar o dinheiro de cada um. O recebedor (recipient, id re_...) é essa conta: nome, documento (CPF ou CNPJ), e-mail e conta bancária, mais as regras de repasse e antecipação. Estas rotas conversam direto com o gateway: o que você cria aqui existe no Pagar.me. Exigem o módulo pagarme e o privilégio manage_payments ou view_payments.
A conta bancária deve ser do próprio recebedor: a plataforma envia o nome e o documento informados como titular da conta.
Listar recebedores
Busca os recebedores no gateway (não numa cópia local). Não há filtros nem paginação: vem o que o gateway devolve na primeira página.
/api/v1/admin/pagarme/recipientsAdminLista os recebedores do Pagar.me
Exemplo de requisição
curl "$BASE_URL/api/v1/admin/pagarme/recipients" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"recipients": [
{
"id": "re_cm0sellerexampleexample0001",
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"status": "active",
"transfer_enabled": false,
"created_at": "2026-09-08T14:55:26Z"
}
],
"total": 1
}Campos da resposta
recipientsarraytotalintegeridstringre_...).namestringemailstringdocumentstringstatusstringactive.transfer_enabledbooleancreated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Chave de API ausente ou recusada, gateway fora do ar | {"error":"failed to list recipients","detail":"pagarme: list recipients api returned 401: ..."} |
Criar um recebedor
Cria o recebedor no gateway. Ele passa por análise do Pagar.me; o campo status da resposta mostra a situação inicial. Esta rota não liga o recebedor a um seller: para isso use a última seção desta página, "Ligar um seller a um recebedor".
/api/v1/admin/pagarme/recipientsAdminCria um recebedor no Pagar.me
Corpo da requisição
namestringobrigatórioemailstringobrigatóriodocumentstringobrigatóriodocument_typestringobrigatóriocpfcnpjcnpj cria um recebedor empresa; cpf, pessoa física.bank_codestringobrigatório001, 341).branch_numberstringobrigatórioaccount_numberstringobrigatórioaccount_typestringobrigatóriocheckingsavingschecking) ou poupança (savings).auto_anticipationbooleanpadrão: falsetransfer_intervalstringdailyweeklymonthlytransfer_enabled e transfer_day são ignorados.transfer_enabledbooleanpadrão: falsetransfer_interval).transfer_dayintegerweekly, de 1 a 31 em monthly, ignorado em daily.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/pagarme/recipients" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"document_type": "cnpj",
"bank_code": "341",
"branch_number": "0001",
"account_number": "123456-7",
"account_type": "checking",
"transfer_interval": "weekly",
"transfer_enabled": true,
"transfer_day": 1
}'Resposta
{
"id": "re_cm0sellerexampleexample0001",
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"status": "active",
"transfer_enabled": true,
"created_at": "2026-10-11T23:20:00Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body","detail":"..."} |
| 500 | Campo obrigatório ausente ou valor fora da lista | {"error":"failed to create recipient","detail":"pagarme: recipient document_type must be 'cpf' or 'cnpj', got \"\""} |
| 500 | O gateway recusou (documento já cadastrado, banco inválido) | {"error":"failed to create recipient","detail":"pagarme: create recipient api returned 412: ..."} |
Consultar um recebedor
/api/v1/admin/pagarme/recipients/{id}AdminConsulta um recebedor do Pagar.me
Parâmetros de caminho
idstringobrigatóriore_...).Exemplo de requisição
curl "$BASE_URL/api/v1/admin/pagarme/recipients/re_cm0sellerexampleexample0001" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "re_cm0sellerexampleexample0001",
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"status": "active",
"transfer_enabled": true,
"created_at": "2026-10-11T23:20:00Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Recebedor que não existe no gateway, ou falha de comunicação | {"error":"failed to get recipient","detail":"pagarme: get recipient api returned 404: ..."} |
Alterar um recebedor
Substitui os dados do recebedor no gateway. Como na criação, todos os campos obrigatórios precisam ser enviados de novo, mesmo os que não mudam: o corpo é validado por inteiro.
/api/v1/admin/pagarme/recipients/{id}AdminAltera um recebedor do Pagar.me
Parâmetros de caminho
idstringobrigatóriore_...).Corpo da requisição
namestringobrigatórioemailstringobrigatóriodocumentstringobrigatóriodocument_typestringobrigatóriocpfcnpjbank_codestringobrigatóriobranch_numberstringobrigatórioaccount_numberstringobrigatórioaccount_typestringobrigatóriocheckingsavingsauto_anticipationbooleanpadrão: falsefalse.transfer_intervalstringdailyweeklymonthlytransfer_enabledbooleanpadrão: falsetransfer_dayintegerExemplo de requisição
curl -X PUT "$BASE_URL/api/v1/admin/pagarme/recipients/re_cm0sellerexampleexample0001" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"document_type": "cnpj",
"bank_code": "341",
"branch_number": "0001",
"account_number": "123456-7",
"account_type": "checking",
"transfer_interval": "monthly",
"transfer_enabled": true,
"transfer_day": 5
}'Resposta
{
"id": "re_cm0sellerexampleexample0001",
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"status": "active",
"transfer_enabled": true,
"created_at": "2026-10-11T23:20:00Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body","detail":"..."} |
| 500 | Campo obrigatório ausente, recebedor inexistente ou gateway recusou | {"error":"failed to update recipient","detail":"..."} |
Ligar um seller a um recebedor
Cria o recebedor no gateway e grava a ligação com o seller, em um passo. A partir daí o seller pode participar do split. Se o seller já tinha uma ligação, ela é substituída pela do novo recebedor, mas o recebedor antigo continua existindo no gateway.
/api/v1/admin/pagarme/recipients/vendorAdminCria um recebedor e liga a um seller
Corpo da requisição
vendor_iduuidobrigatóriorecipientobjectobrigatórioDados do recebedor, com os mesmos campos e regras de Criar um recebedor.
namestringobrigatórioemailstringobrigatóriodocumentstringobrigatóriodocument_typestringobrigatóriocpfcnpjbank_codestringobrigatóriobranch_numberstringobrigatórioaccount_numberstringobrigatórioaccount_typestringobrigatóriocheckingsavingsauto_anticipationbooleantransfer_intervalstringdailyweeklymonthlytransfer_enabledbooleantransfer_dayintegerExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/pagarme/recipients/vendor" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"vendor_id": "ec5e10b3-8cb1-43e9-9aa8-964b64eda8de",
"recipient": {
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"document_type": "cnpj",
"bank_code": "341",
"branch_number": "0001",
"account_number": "123456-7",
"account_type": "checking"
}
}'Resposta
{
"recipient": {
"id": "re_cm0sellerexampleexample0001",
"name": "Perola Produtos Ltda",
"email": "financeiro@perola.example.com",
"document": "98765432000198",
"status": "active",
"transfer_enabled": false,
"created_at": "2026-10-11T23:20:00Z"
},
"vendor_id": "ec5e10b3-8cb1-43e9-9aa8-964b64eda8de"
}Campos da resposta
recipientobjectvendor_iduuidErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body","detail":"..."} |
| 400 | Sem vendor_id | {"error":"vendor_id is required"} |
| 500 | Dados do recebedor inválidos ou recusados pelo gateway | {"error":"failed to create recipient","detail":"..."} |
| 500 | Recebedor criado, mas a ligação não foi gravada | {"error":"failed to save vendor recipient mapping","detail":"..."} |