Acordos
Acordos/parcelamentos de débitos (multas, avarias, atrasos) com itens e parcelas.
/v1/acordosListarGET/v1/acordos/{id}DetalharGET/v1/acordos/{id}/parcelasRelação: Parcelas de acordoGET/v1/acordos/{id}/itensRelação: Itens de acordoGET/v1/acordos/{id}/multasRelação: MultasGET/v1/acordos/{id}/locacaoRelação: LocaçõesGET/v1/acordos/{id}/clienteRelação: ClientesGET/v1/acordos/exportarExportar em lotePOST/v1/acordosCriar acordoPOST/v1/acordos/{id}/parcelas/{pid}/baixaDar baixaO objeto acordos
| Campo | Tipo | Descrição | |
|---|---|---|---|
id | inteiro | Identificador | ordenar |
rental_id | inteiro | ID da locação | filtro |
client_id | inteiro | ID do cliente | filtro |
title | texto | title | |
status | texto (enum) | Situaçãoaberto em_dia atrasado quitado cancelado encerrado | filtro |
total_original | decimal (string) | total original | |
total_interest | decimal (string) | total interest | |
total_fines | decimal (string) | total fines | |
total_discount | decimal (string) | total discount | |
total_final | decimal (string) | total final | ordenar |
notes | texto | Observações | |
created_by | inteiro | created by | |
created_at | data-hora | Criado em | ordenar |
updated_at | data-hora | Atualizado em | ordenar |
cancelled_at | data-hora | cancelled at | |
cancelled_by | inteiro | cancelled by |
{
"id": 1024,
"rental_id": 512,
"client_id": 512,
"title": "Acordo de multas",
"status": "aberto",
"total_original": "450.00",
"total_interest": "450.00",
"total_fines": "450.00",
"total_discount": "450.00",
"total_final": "450.00",
"notes": "Cliente pediu boleto",
"created_by": 1,
"created_at": "2026-10-08T14:30:00-03:00",
"updated_at": "2026-10-08T14:30:00-03:00",
"cancelled_at": "2026-10-08T14:30:00-03:00",
"cancelled_by": 1
}GET Listar
Retorna os registros paginados, do mais recente para o mais antigo (padrão). Requer Ler.
Parâmetros de consulta
| Parâmetro | Tipo | Descrição |
|---|---|---|
pagina | inteiro | Página (padrão 1) |
por_pagina | inteiro | 1 a 200 (padrão 50) |
ordenar | texto | Aceita: id, created_at, updated_at, total_final — prefixo - para decrescente |
campos | texto | Lista de campos do objeto, separados por vírgula |
q | texto | Busca em: title |
status | texto (enum) | Situação — valor exato ou lista separada por vírgulaaberto em_dia atrasado quitado cancelado encerrado |
rental_id | inteiro | ID da locação — valor exato ou lista separada por vírgula |
client_id | inteiro | ID do cliente — valor exato ou lista separada por vírgula |
criado_desde / criado_ate | data | Período de criação |
atualizado_desde | data-hora | Criados ou alterados desde (pela coluna de atualização) |
incluir | texto | Só no detalhe. Relações: parcelas, itens, multas, locacao, cliente |
curl -X GET "https://apimapogos.sixinformatica.com/v1/acordos?por_pagina=20" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/acordos?por_pagina=20');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/acordos?por_pagina=20', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/acordos?por_pagina=20",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": [
{
"id": 1024,
"rental_id": 512,
"client_id": 512,
"title": "Acordo de multas",
"status": "aberto",
"total_original": "450.00",
"total_interest": "450.00",
"total_fines": "450.00"
}
],
"meta": {
"total": 1,
"pagina": 1,
"por_pagina": 20,
"paginas": 1
},
"request_id": "req_0f1e2d3c4b5a69788796"
}GET Detalhar
Retorna um registro pelo id. Requer Ler.
Use incluir para embutir relações (cada uma exige Ler no módulo relacionado).
| Erro | Quando |
|---|---|
404 nao_encontrado | Não existe ou está fora das carteiras da chave |
403 permissao_negada | Sem Ler no módulo (ou numa relação pedida) |
curl -X GET "https://apimapogos.sixinformatica.com/v1/acordos/1024?incluir=parcelas" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/acordos/1024?incluir=parcelas');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/acordos/1024?incluir=parcelas', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/acordos/1024?incluir=parcelas",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"rental_id": 512,
"client_id": 512,
"title": "Acordo de multas",
"status": "aberto",
"total_original": "450.00",
"total_interest": "450.00",
"total_fines": "450.00"
},
"request_id": "req_1d2c3b4a5f6e7d8c9b0a"
}Relações
| Nome | Módulo | Retorno | Rota |
|---|---|---|---|
parcelas | Parcelas de acordo | lista paginada | /v1/acordos/{id}/parcelas |
itens | Itens de acordo | lista paginada | /v1/acordos/{id}/itens |
multas | Multas | lista paginada | /v1/acordos/{id}/multas |
locacao | Locações | um registro | /v1/acordos/{id}/locacao |
cliente | Clientes | um registro | /v1/acordos/{id}/cliente |
GET Exportar em lote
Até 1000 registros por chamada, paginando por cursor. Requer Ler e Exportar. Aceita os mesmos filtros da listagem e formato=csv. Detalhes no guia Exportação em lote.
curl -X GET "https://apimapogos.sixinformatica.com/v1/acordos/exportar?limite=1000" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/acordos/exportar?limite=1000');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/acordos/exportar?limite=1000', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/acordos/exportar?limite=1000",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])POST Criar acordo
Criar acordo — mesma regra da tela Novo Acordo: um acordo aberto por cliente; cancela débitos e PIX pendentes do contrato; reinicia o ciclo de lembretes; envia ao cliente o WhatsApp e o PIX da 1ª parcela. Requer criar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
rental_id | inteiro | obrigatório | |
title | texto | opcional | (até 120 caracteres) |
notes | texto | opcional | (até 5000 caracteres) |
installments | inteiro | obrigatório | |
first_due | data | obrigatório | |
interval | enum | opcional | Padrão monthly (biweekly = a cada 15 dias)weekly biweekly monthly |
itens | lista | obrigatório | [{item_type, description, qty, unit_amount}] — item_type: multas_transito, avarias, diaria_atraso, outras… (valor_pago = desconto) |
Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.
curl -X POST "https://apimapogos.sixinformatica.com/v1/acordos" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"rental_id":1024,"title":"Acordo de multas","installments":4,"first_due":"2026-10-15","interval":"weekly","itens":[{"item_type":"multas_transito","description":"AIT PA1234567","qty":1,"unit_amount":"293.47"}]}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/acordos');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => json_encode([
'rental_id' => 1024,
'title' => 'Acordo de multas',
'installments' => 4,
'first_due' => '2026-10-15',
'interval' => 'weekly',
'itens' => [
[
'item_type' => 'multas_transito',
'description' => 'AIT PA1234567',
'qty' => 1,
'unit_amount' => '293.47',
],
],
]),
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/acordos', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"rental_id": 1024,
"title": "Acordo de multas",
"installments": 4,
"first_due": "2026-10-15",
"interval": "weekly",
"itens": [
{
"item_type": "multas_transito",
"description": "AIT PA1234567",
"qty": 1,
"unit_amount": "293.47"
}
]
}),
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"POST",
"https://apimapogos.sixinformatica.com/v1/acordos",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"rental_id": 1024,
"title": "Acordo de multas",
"installments": 4,
"first_due": "2026-10-15",
"interval": "weekly",
"itens": [
{
"item_type": "multas_transito",
"description": "AIT PA1234567",
"qty": 1,
"unit_amount": "293.47"
}
]
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"rental_id": 512,
"client_id": 512,
"title": "Acordo de multas",
"status": "aberto",
"total_original": "450.00",
"total_interest": "450.00",
"total_fines": "450.00"
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}POST Dar baixa
Dar baixa (total ou parcial) numa parcela — mesma regra da Central de Acordos. Requer atualizar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
valor | decimal | obrigatório | |
metodo | enum | opcional | pix cartao dinheiro transferencia |
observacao | texto | opcional | (até 255 caracteres) |
pago_em | datahora | opcional | Padrão: agora |
Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.
curl -X POST "https://apimapogos.sixinformatica.com/v1/acordos/1024/parcelas/7/baixa" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"valor":"73.37","metodo":"pix","pago_em":"2026-10-08T10:30:00-03:00"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/acordos/1024/parcelas/7/baixa');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => json_encode([
'valor' => '73.37',
'metodo' => 'pix',
'pago_em' => '2026-10-08T10:30:00-03:00',
]),
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/acordos/1024/parcelas/7/baixa', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"valor": "73.37",
"metodo": "pix",
"pago_em": "2026-10-08T10:30:00-03:00"
}),
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"POST",
"https://apimapogos.sixinformatica.com/v1/acordos/1024/parcelas/7/baixa",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"valor": "73.37",
"metodo": "pix",
"pago_em": "2026-10-08T10:30:00-03:00"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"rental_id": 512,
"client_id": 512,
"title": "Acordo de multas",
"status": "aberto",
"total_original": "450.00",
"total_interest": "450.00",
"total_fines": "450.00"
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}Recursos incluídos neste módulo
Estes recursos usam a mesma permissão de Acordos:
| Rota | Recurso | Descrição | Campos |
|---|---|---|---|
/v1/acordos_parcelas | Parcelas de acordo | Parcelas de cada acordo (valor, vencimento, pago). | id, agreement_id, installment_no, due_date, amount, paid_amount, status, paid_at … |
/v1/acordos_itens | Itens de acordo | Composição do acordo (multas de trânsito, avarias, diárias etc.). | id, agreement_id, item_type, description, qty, unit_amount, total_amount, created_at |
Eventos de webhook
acordo.criado acordo.quitado acordo.parcela_paga — veja Webhooks.