> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lead.bank/llms.txt
> Use this file to discover all available pages before exploring further.

# Blockchain Payments Returns & Exceptions

> Return Blockchain payments and handle common exceptions

A return occurs when money has moved out of an account number and was unable to be delivered to its final destination. A return is modeled as a separate linked object: when a return occurs, the original object transitions to posted and the linked return object carries the reversal. 

This includes: 

* `related_blockchain_payments.original_blockchain_payment_id`
* `return.reason`
* `return.code`

The original outgoing blockchain\_payment will also now include the Related\_blockchain\_payments.return\_blockchain\_payment\_ids

The amount returned may not equal the amount sent because of fees and currency conversion. For an FX Payout, if conversion has already occurred, the funds are converted back to USD at the new spot rate. This can result in more or less USD than the original payment.

## A Return

### Life Cycle 

<img src="https://mintcdn.com/lead/jZQHI4E63bs5Mp5E/images/blockchain_payments-return-life-cycle.png?fit=max&auto=format&n=jZQHI4E63bs5Mp5E&q=85&s=d478b9ad50e4b8e5a17a9decd65144b6" alt="Blockchain Payments Return Life Cycle" width="1914" height="654" data-path="images/blockchain_payments-return-life-cycle.png" />

### Reasons

| **Return reason** | **Return Code** | **Retryable** | **Client action** |
| :- | :- | :- | :- |
| account closed, suspended or otherwise cannot accept the payment | | No | Use a different destination account |

Depending on when the account becomes closed, the resulting path can be a rejection or a return.

<img src="https://mintcdn.com/lead/jZQHI4E63bs5Mp5E/images/blockchain_pyament-path.png?fit=max&auto=format&n=jZQHI4E63bs5Mp5E&q=85&s=1b6b6067a68cf003a370a538836fc22a" alt="Blockchain Payment Path" width="2423" height="722" data-path="images/blockchain_pyament-path.png" />

## A Rejection 

A rejection occurs when a payment is unable to take flight. A rejection is modeled as a terminal state in the `blockchain_payment` lifecycle. 

### Reasons

| **Reason** | **Description** | **Client action** |
| :- | :- | :- |
| `payment_could_not_be_processed` | Payment could not be processed | None, likely due to a compliance flag or receiving agent rejection. |
| `name_mismatch` | Name in request and name on account do not match | New payment with corrected beneficiary name |
| `name_not_validated` | Name could not be validated | Account name validation timed out. Submit the same payment again - succeeds once the beneficiary name finishes verification |
| `account_closed` | Account closed | New payment with a different destination account |
| `account_number_incorrect` | For FX payouts, the receiving account's details are incorrect | New payment with a different destination account |

## Exceptions

In the rare case that an `account_number_id` is closed, Lead places the funds in the partner's `account_id`. The partner is responsible for returning these funds to their owner.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.