neo-pays

Rimborsi

Restituire tutto o parte di un incasso.

Creare un rimborso

POST /v1/refunds
Campo Obbligatorio Descrizione
payment_id sì L'incasso originale: il suo identificativo o il suo riferimento
amount_minor — Stringa, in unità minori. Assente = il saldo residuo
reason — customer_request, duplicate, fraudulent o other
description — Testo libero, visibile nella dashboard

Il rimborso è un'operazione a pieno titolo: un proprio id, un proprio stato, un proprio evento webhook (refund.success / refund.failed).

Regole

  • Si rimborsa solo un incasso riuscito.
  • La somma dei rimborsi non può superare l'importo incassato — oltre, l'API risponde 422 refund_exceeds_refundable.
  • Le commissioni d'incasso non vengono restituite: restano a suo carico.
  • Un rimborso parziale lascia l'incasso originale consultabile, con il suo storico completo.
  • I fondi sono prelevati dal suo saldo disponibile al momento della chiamata, come per un pagamento.

Una chiave di idempotenza per rimborso. Mai l'identificativo del pagamento originale: un incasso può essere rimborsato in più volte, e una chiave che porti l'identificativo del padre farebbe passare il secondo rimborso parziale per una ripetizione del primo.

Leggere ed elencare

GET /v1/refunds/{id}
GET /v1/refunds                     — elenco; ?payment_id= per un solo incasso
GET /v1/payments/{id}/refunds        — i rimborsi di un incasso

GET /v1/payments/{id}/refunds e GET /v1/refunds?payment_id= restituiscono lo stesso oggetto dell'elenco, con la stessa paginazione. L'incasso si indica con il suo identificativo o il suo riferimento; quello di un altro account risponde 404 sulla sotto-risorsa e un elenco vuoto sul filtro.

Codici di rifiuto

Un rimborso rifiutato risponde 422, nella consueta busta di errore:

Codice Significato
refund_exceeds_refundable L'importo supera quanto resta rimborsabile. L'errore riporta amount_refundable_minor.
wave_partial_refund_window_closed Incasso Wave: il termine per il rimborso parziale è scaduto; è possibile solo il rimborso totale, se nulla è stato rimborsato.
wave_partial_refunds_disabled I rimborsi parziali Wave non sono attivi; il rimborso totale resta possibile.
wave_refund_window_closed Incasso Wave già rimborsato in parte e termine scaduto: nessun altro rimborso.
payer_not_found Wave non indica il pagatore: un rimborso parziale, versato al pagatore, non può partire.
insufficient_funds Il suo saldo disponibile non copre il rimborso.

Wave: rimborsi parziali

Wave rimborsa una transazione solo per intero. Un rimborso parziale di un incasso Wave viene quindi versato al numero Wave del pagatore, e solo entro il termine indicato da partial_refund_deadline sull'incasso. Dopo quel termine è possibile solo il rimborso totale, e solo se nulla è stato rimborsato.