# Cashout Update Status Endpoint

## Cashout Update Status Endpoint

<mark style="color:orange;">`PUT`</mark> `https://api-stg.lime-pay.com/v3/cashout/status`

This API allows you to change the status of a cashout

#### Headers

| Name                                                | Type   | Description        |
| --------------------------------------------------- | ------ | ------------------ |
| Content-Type<mark style="color:red;">\*</mark>      | string | `application/json` |
| Payload-Signature<mark style="color:red;">\*</mark> | string | Control Signature  |

#### Request Body

| Name                                          | Type   | Description                                                                                               |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------- |
| login<mark style="color:red;">\*</mark>       | String | Your LimePay CASHOUTS API login key                                                                       |
| pass<mark style="color:red;">\*</mark>        | string | Your LimePay CASHOUTS API pass key                                                                        |
| cashout\_id<mark style="color:red;">\*</mark> | number | The ID of the cashout to asign status to. It is the one generated by LimePay when the cashout was created |
| status<mark style="color:red;">\*</mark>      | string | The status to be assigned to the cashout                                                                  |

{% tabs %}
{% tab title="200 The status of the cashout was successfully retrieved" %}

```java
{
    "cashout_status": 1,
    "cashout_status_description": "Completed"
}

{
    "cashout_status": 3,
    "cashout_status_description": "Rejected",
    "rejection_code": 0,
    "rejection_reason": "Test"
}
```

{% endtab %}

{% tab title="401 Invalid credentials error" %}

```java
{
    "code": 401,
    "message": "Invalid credentials."
}
```

{% endtab %}

{% tab title="412 The cashout ID was not found" %}

```java
{
    "code": 509,
    "message": "Cashout not found with this ID"
}
```

{% endtab %}
{% endtabs %}

## Introduction

This API is used to update a cashout from PENDING to ON\_HOLD or from ON\_HOLD to PENDING.

A cashout in ON\_HOLD won't be processed until you set it back to PENDING. This is useful in cases where you need to perform some form of KYC over the beneficiary before proceeding with the request.

You can create a cashout in ON\_HOLD by specifying the flag `on_hold: true` on the [cashout creation request](https://docs.lime-pay.com/api-documentation/cashouts-api/endpoints/cashout-creation-endpoint).

{% hint style="info" %}
Only cashouts in PENDING status can be updated to ON\_HOLD. Once the cashout was sent to the bank, it will change to DELIVERED at which point it can't be cancelled anylonger
{% endhint %}

If a cashout is ON\_HOLD and you would like to definitely cancel it, please see the [cashout-cancel-endpoint](https://docs.lime-pay.com/api-documentation/cashouts-api/endpoints/cashout-cancel-endpoint "mention")

{% hint style="warning" %}
Cashouts in ON\_HOLD retain the amounts from your balance, so be careful to not accumulate cashouts in this status for long time.
{% endhint %}

## Cashout Update Status Request

### Request Example

```java
// HEADERS
Content-Type: application/json 
Payload-Signature: 2e5023770760ka0a02230bff1a6dab934fe3b47a5e3d43854b58676600ee3868 

// BODY
{ 
   "login": "cashout_login",  
   "pass": "cashout_pass", 
   "cashout id": "97875"
   "status": "ON_HOLD"
}
```

### Request Fields Description

<table><thead><tr><th>Field</th><th width="239.33333333333331">Format</th><th>Description</th></tr></thead><tbody><tr><td><code>login</code></td><td>String. Length 32 max</td><td>Your Lime-Pay <strong>CASHOUTS</strong> API Key, it can be found on the Merchant Panel: Settings -> API Access. Notice there are specific Cashout credentials</td></tr><tr><td><code>pass</code></td><td>String. Length 32 max</td><td>Your Lime-Pay <strong>CASHOUTS</strong> API Passphrase, it can be found on the Merchant Panel: Settings -> API Access. Notice there are specific Cashout credentials</td></tr><tr><td><code>cashout_id</code></td><td>Number</td><td>Identifier of the cashout on Lime-Pay end. It is the one returned by the <a href="cashout-creation-endpoint">Create Cashout Endpoint</a></td></tr><tr><td><code>status</code></td><td>String</td><td>Status to be assigned to the cashout. Valid values: <code>PENDING</code>, <code>ON_HOLD</code></td></tr></tbody></table>

### Request Payload Signature

The Payload-Signature of the Cashout Update Status Endpoint is calculated by hashing the whole JSON payload of the request using HMAC256 and your secret key (API Signature) to encrypt it.

[Click here](https://docs.lime-pay.com/api-documentation/cashouts-api/technical-and-security-aspects/calculating-the-payload-signature) for further instructions.

&#x20;

## Cashout Update Status Response

### Error Response Example

```java
{
    "code": 510,
    "message": "Invalid status transition"
}
```

| `code`    | Number | Error code               |
| --------- | ------ | ------------------------ |
| `message` | String | Description of the error |

## Status Flow

[Click here](https://docs.lime-pay.com/api-documentation/api-codes#cashout-status-codes) to see each Cashout Status meaning.

### Cashout Status Flow

&#x20;

![Cashout Status Flow Diagram](https://content.gitbook.com/content/QwMHQLA98rN2pqEMJgaj/blobs/0SQKpV5W2fYJd5gdklkB/Cashouts%20Status%20Flow%20v3.svg)

{% hint style="info" %}

1. DECLINED: The DECLINED status is not a status by itself. It means the transaction couldn't be created because of an error with the data, the customer or the merchant configuration. No transaction will change its status from DECLINED.
2. PENDING: Once the cashout is in PENDING status, it means it was successfully created and that it will be send for processing soon, changing to DELIVERED. It can also be manually changed to ON\_HOLD or CANCELLED.
3. ON\_HOLD: A cashout will be created with ON\_HOLD status only if specified while creating the cashout with *on\_hold: true.* Otherwise, it can be manually set to ON\_HOLD from the Merchant Panel. If a cashout is ON\_HOLD, it won't be send for processing until you manually go and set it to PENDING from the Merchant Panel. It can still be CANCELLED.
4. CANCELLED: It means you didn't want to proceed with the cashout and it was CANCELLED through the Merchant Panel or through the Cancel Cashout Endpoint. Final status.
5. DELIVERED: As soon as the cashout is sent to the bank for processing, its status will change to DELIVERED. At which point it can't be cancelled anymore.
6. COMPLETED: If the cashout was successfully completed, its status will be set to COMPLETED. Final status\*.
7. REJECTED: If the cashout was rejected by the bank, its status will be set to REJECTED. Final status.
   {% endhint %}

* There are cases in which the bank confirms us that a payout was successful and after a few days, it gets rejected by the beneficiary's bank therefore the status on our platform will change to REJECTED as well. Those are very corner cases but should be considered.

## Status codes

Check all the possible status codes in the following page:

{% content-ref url="../api-codes" %}
[api-codes](https://docs.lime-pay.com/api-documentation/cashouts-api/api-codes)
{% endcontent-ref %}
