Régua de cobrança: configuração
Liga ou desliga a régua de cobrança do seller e mantém as etapas (quando, por qual canal e com que mensagem cobrar).
Ler a régua
A régua de cobrança (dunning) é o roteiro de lembretes para clientes com conta a receber vencida: no dia X depois do vencimento, tal canal e tal mensagem. Esta rota lê se a régua do seller está ligada. Importante: a plataforma não envia nada sozinha. Ela monta a fila do que deveria ser cobrado e você registra o contato.
/api/v1/vendor/erp/cobranca/policySellerLê o estado da régua de cobrança
Exemplo de requisição: Ler a régua
curl "$BASE_URL/api/v1/vendor/erp/cobranca/policy" \
-H "Authorization: Bearer $TOKEN"Resposta: Ler a régua
{
"status": "active"
}Campos da resposta
statusstringactiveinactiveinactive quando nunca foi configurada.Erros: Ler a régua
| Status | Quando | Corpo |
|---|---|---|
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Ligar ou desligar a régua
/api/v1/vendor/erp/cobranca/policySellerLiga ou desliga a régua
Corpo da requisição
statusstringobrigatórioactiveinactiveactive ou inactive. Aceita maiúsculas.Exemplo de requisição: Ligar ou desligar a régua
curl -X PUT "$BASE_URL/api/v1/vendor/erp/cobranca/policy" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "active"
}'Resposta: Ligar ou desligar a régua
{
"status": "active"
}Campos da resposta
statusstringactiveinactiveinactive quando nunca foi configurada.Erros: Ligar ou desligar a régua
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | status fora dos dois valores. | {"error":"vendorerp: status must be active|inactive"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Listar etapas
Cada etapa diz o que fazer a partir de N dias do vencimento. A lista vem do menor para o maior offset_days, sem paginação.
/api/v1/vendor/erp/cobranca/stepsSellerLista as etapas da régua
Exemplo de requisição: Listar etapas
curl "$BASE_URL/api/v1/vendor/erp/cobranca/steps" \
-H "Authorization: Bearer $TOKEN"Resposta: Listar etapas
{
"steps": [
{
"id": "0b1c2d3e-4f50-4a61-8b72-93a4b5c6d7e8",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"offset_days": 3,
"channel": "whatsapp",
"template_subject": "Boleto em atraso",
"template_body": "Olá {cliente}, o valor de {valor} venceu em {vencimento} ({dias_atraso} dias). Podemos ajudar?",
"position": 1,
"created_at": "2026-10-11T14:30:00Z",
"updated_at": "2026-10-11T14:30:00Z"
}
],
"total": 1
}Campos da resposta
stepsarrayEtapas.
iduuidvendor_iduuidoffset_daysintegerchannelstringemailwhatsappphonemanualtemplate_subjectstringtemplate_bodystringpositionintegercreated_atdatetimeupdated_atdatetimetotalintegerErros: Listar etapas
| Status | Quando | Corpo |
|---|---|---|
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Criar ou atualizar etapa
Grava uma etapa. O par (seller, offset_days) é único: enviar de novo o mesmo offset_days atualiza a etapa existente (e restaura uma apagada) em vez de criar outra. Por isso a resposta é sempre 200, também na criação.
/api/v1/vendor/erp/cobranca/stepsSellerCria ou atualiza uma etapa
Corpo da requisição
offset_daysintegerobrigatóriochannelstringpadrão: emailemailwhatsappphonemanualemail.template_subjectstringtemplate_bodystringobrigatório{cliente}, {valor} (formatado em reais), {vencimento} e {dias_atraso}.positionintegerExemplo de requisição: Criar ou atualizar etapa
curl -X POST "$BASE_URL/api/v1/vendor/erp/cobranca/steps" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"offset_days": 3,
"channel": "whatsapp",
"template_subject": "Boleto em atraso",
"template_body": "Olá {cliente}, o valor de {valor} venceu em {vencimento} ({dias_atraso} dias). Podemos ajudar?",
"position": 1
}'Resposta: Criar ou atualizar etapa
{
"id": "0b1c2d3e-4f50-4a61-8b72-93a4b5c6d7e8",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"offset_days": 3,
"channel": "whatsapp",
"template_subject": "Boleto em atraso",
"template_body": "Olá {cliente}, o valor de {valor} venceu em {vencimento} ({dias_atraso} dias). Podemos ajudar?",
"position": 1,
"created_at": "2026-10-11T14:30:00Z",
"updated_at": "2026-10-11T14:30:00Z"
}Campos da resposta
iduuidvendor_iduuidoffset_daysintegerchannelstringemailwhatsappphonemanualtemplate_subjectstringtemplate_bodystringpositionintegercreated_atdatetimeupdated_atdatetimeErros: Criar ou atualizar etapa
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | offset_days fora da faixa. | {"error":"vendorerp: offset_days must be between -30 and 180"} |
| 400 | Canal inválido. | {"error":"vendorerp: channel must be email|whatsapp|phone|manual"} |
| 400 | template_body em branco. | {"error":"vendorerp: template_body required"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Apagar etapa
/api/v1/vendor/erp/cobranca/steps/{id}SellerApaga uma etapa
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: Apagar etapa
curl -X DELETE "$BASE_URL/api/v1/vendor/erp/cobranca/steps/3f6c1c1e-8d0b-4a55-9a52-1d6f6a4a7b10" \
-H "Authorization: Bearer $TOKEN"Resposta: Apagar etapa
{
"message": "step deleted"
}Campos da resposta
messagestringstep deleted.Erros: Apagar etapa
| Status | Quando | Corpo |
|---|---|---|
| 404 | A etapa não existe ou já foi apagada. | {"error":"dunning step not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |