Simular parcelas
GET
/api/v1/bank/public/charge/{uuid}/simulate-installmentEndpoint público
Este endpoint é chamado pela página de checkout ou SDK para exibir ao pagador as opções de parcelamento disponíveis. Não requer Bearer token — o UUID da cobrança fornece o contexto.
Cabeçalhos da requisição
| Cabeçalho | Valor | Obrigatório |
|---|---|---|
Accept | application/json | Recomendado |
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
uuid | string (UUID) | Sim | UUID da cobrança para simular parcelas |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
charge_uuid | string | Identificador da cobrança |
total_amount | number | Valor original da cobrança |
currency | string | Código da moeda |
installments | array | Opções de parcelamento disponíveis |
installments[].count | integer | Número de parcelas (1, 2, 3, …12) |
installments[].installment_value | number | Valor por parcela |
installments[].total_amount | number | Total com juros (se aplicável) |
installments[].interest_rate | number | Taxa de juros mensal (0 para sem juros) |
installments[].interest_free | boolean | Se esta opção tem juros zero |
Códigos de status HTTP
| Status | Descrição |
|---|---|
| 200 | Simulação de parcelamento retornada |
| 404 | Cobrança não encontrada ou expirada |
| 422 | Tipo de cobrança não suporta parcelamento |
| 429 | Limite de requisições excedido |
| 500 | Erro interno do servidor |
Exemplos de código
- cURL
- Python
- Node.js
curl -s -X GET "https://core-manager.a55.tech/api/v1/bank/public/charge/a1b2c3d4-e5f6-7890-abcd-ef1234567890/simulate-installment"
import requests
charge_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
try:
response = requests.get(
f"https://core-manager.a55.tech/api/v1/bank/public/charge/{charge_uuid}/simulate-installment",
)
response.raise_for_status()
sim = response.json()
for opt in sim["installments"]:
label = "interest-free" if opt["interest_free"] else f"{opt['interest_rate']}%/mo"
print(f"{opt['count']}x R$ {opt['installment_value']:.2f} ({label})")
except requests.exceptions.HTTPError as e:
print(f"HTTP {e.response.status_code}: {e.response.json()}")
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
const chargeUuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";
try {
const response = await fetch(
`https://core-manager.a55.tech/api/v1/bank/public/charge/${chargeUuid}/simulate-installment`
);
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const sim = await response.json();
for (const opt of sim.installments) {
const label = opt.interest_free ? "interest-free" : `${opt.interest_rate}%/mo`;
console.log(`${opt.count}x R$ ${opt.installment_value.toFixed(2)} (${label})`);
}
} catch (error) {
console.error("Simulation failed:", error.message);
}
Exemplo de resposta de erro
{
"status": "error",
"message": [
{
"code": "CHARGE_NOT_FOUND",
"source": "simulation",
"description": "Charge a1b2c3d4-e5f6-7890-abcd-ef1234567890 not found or expired"
}
]
}