Cancelar cobrança
POST
/api/v1/bank/wallet/charge/{charge_uuid}/cancel/{wallet_uuid}/Bearer TokenCabeçalhos da requisição
| Cabeçalho | Valor | Obrigatório |
|---|---|---|
Authorization | Bearer {A55_ACCESS_TOKEN} | Sim |
Content-Type | application/json | Sim |
Idempotency-Key | UUID v4 | Recomendado |
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
charge_uuid | string (UUID) | Sim | Cobrança a ser cancelada |
wallet_uuid | string (UUID) | Sim | Carteira proprietária da cobrança |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
reason | string | Não | Motivo do cancelamento para conciliação |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
charge_uuid | string | Identificador da cobrança cancelada |
wallet_uuid | string | Carteira proprietária da cobrança |
status | string | canceled em caso de sucesso |
message | object | Detalhes adicionais ou objeto vazio em caso de sucesso |
Códigos de status HTTP
| Status | Descrição |
|---|---|
| 200 | Cobrança cancelada com sucesso |
| 400 | A cobrança não está em um estado cancelável |
| 401 | Token Bearer inválido ou expirado |
| 403 | Permissões insuficientes para esta carteira |
| 404 | Cobrança ou carteira não encontrada |
| 409 | Cobrança já cancelada ou liquidada |
| 422 | Erro de validação |
| 429 | Limite de requisições excedido |
| 500 | Erro interno do servidor — tente novamente com backoff exponencial |
Exemplos de código
- cURL
- Python
- Node.js
curl -s -X POST "https://core-manager.a55.tech/api/v1/bank/wallet/charge/a1b2c3d4-e5f6-7890-abcd-ef1234567890/cancel/f47ac10b-58cc-4372-a567-0e02b2c3d479/" \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-d '{"reason": "Customer requested cancellation before shipment"}'
import requests
import os
token = os.environ["A55_ACCESS_TOKEN"]
base = os.environ.get("A55_API_URL", "https://core-manager.a55.tech")
charge_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
wallet_uuid = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
try:
response = requests.post(
f"{base}/api/v1/bank/wallet/charge/{charge_uuid}/cancel/{wallet_uuid}/",
json={"reason": "Customer requested cancellation before shipment"},
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
"Idempotency-Key": "550e8400-e29b-41d4-a716-446655440000",
},
)
response.raise_for_status()
result = response.json()
print(f"Cancelled: {result['charge_uuid']} — Status: {result['status']}")
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 token = process.env.A55_ACCESS_TOKEN;
const base = process.env.A55_API_URL || "https://core-manager.a55.tech";
const chargeUuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";
const walletUuid = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
try {
const response = await fetch(
`${base}/api/v1/bank/wallet/charge/${chargeUuid}/cancel/${walletUuid}/`,
{
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
"Idempotency-Key": "550e8400-e29b-41d4-a716-446655440000",
},
body: JSON.stringify({
reason: "Customer requested cancellation before shipment",
}),
}
);
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const result = await response.json();
console.log(`Cancelled: ${result.charge_uuid} — Status: ${result.status}`);
} catch (error) {
console.error("Cancel failed:", error.message);
}
Exemplo de resposta de erro
{
"charge_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "error",
"message": [
{
"code": "CANCEL_NOT_ALLOWED",
"source": "charge",
"description": "Charge has already been settled and cannot be cancelled. Use refund instead."
}
]
}