Allya Payments
Pagamentos

Cancelar pagamento

Como cancelar uma cobrança de cartão ainda não paga.

Use POST /v1/payments/:id/cancel para cancelar uma cobrança de cartão que ainda está aguardando pagamento.

Cancelamento não é estorno. Pagamentos já confirmados não podem ser cancelados por esta rota.

Regras

RegraComportamento
MétodoApenas card.
Status aceitospending ou processing.
PixRetorna 400 cannot_cancel_pix; o QR Code deve expirar naturalmente.
Pagamento pagoRetorna 409 cannot_cancel_paid.
Status finalRetorna 409 already_canceled para canceled, expired ou failed, incluindo status com o valor atual.

Cartão no Pagar.me: o pagamento precisa ter sido criado com customer.phone válido. Pagamentos legados criados sem phone podem responder 502 gateway_error no cancelamento: o adapter não revalida o campo, mas o gateway pode rejeitar. Se isso acontecer, deixe a cobrança expirar naturalmente (cartão não pago expira no gateway depois do prazo configurado).

Exemplo

curl --request POST \
  --url https://payments-api.allyasolutions.com/v1/payments/pay_7f3e0c9a12b44d63a9f612c42a8d2b90/cancel \
  --header "Authorization: Bearer sk_test_..."

Resposta:

{
  "id": "pay_7f3e0c9a12b44d63a9f612c42a8d2b90",
  "status": "canceled",
  "method": "card",
  "gateway": "pagarme",
  "amount": 12990,
  "currency": "BRL",
  "externalId": "pedido_124",
  "gatewayRef": "pl_abc",
  "customer": {
    "name": "Cliente Teste",
    "email": "cliente@example.com",
    "documentLast4": "0000"
  },
  "checkoutUrl": "https://...",
  "pix": null,
  "card": null
}

Quando o status muda, a Allya registra um evento interno e envia o webhook outbound payment.canceled para os endpoints configurados.

Códigos de resposta

StatusErrorSignificado
200-Pagamento cancelado e retornado no formato normalizado.
400invalid_idID na rota é inválido.
400cannot_cancel_pixPagamentos Pix não são cancelados pela API.
401unauthorizedAPI key ausente ou inválida.
404not_foundPagamento não existe no ambiente da API key.
409cannot_cancel_paidPagamento já foi confirmado.
409already_canceledPagamento já está em status final. A resposta inclui status com o valor atual.
409cannot_cancel_statusStatus atual não permite cancelamento. A resposta inclui status com o valor atual.
409missing_gateway_refPagamento não tem referência do gateway para cancelar.
409provider_not_configuredGateway do pagamento não está configurado no ambiente.
429rate_limit_exceededLimite por API key excedido (default 10/min). Veja Retry-After.
501not_implementedO gateway atual ainda não expõe cancelamento seguro pela Allya.
502gateway_errorO gateway recusou ou falhou durante o cancelamento.

Veja também

On this page