# Deposit Status Endpoint

## Deposit Status

<mark style="color:blue;">`GET`</mark> `https://api-stg.directa24.com/v3/deposits/{deposit_id}`

This endpoint allows you to retrieve the status of a deposit request.

#### Path Parameters

| Name                                          | Type    | Description                                                     |
| --------------------------------------------- | ------- | --------------------------------------------------------------- |
| deposit\_id<mark style="color:red;">\*</mark> | integer | Directa24 deposit\_id. It is obtained when creating the deposit |

#### Headers

| Name                                            | Type   | Description                                              |
| ----------------------------------------------- | ------ | -------------------------------------------------------- |
| X-Date<mark style="color:red;">\*</mark>        | string | ISO8601 Datetime with Timezone: `yyyy-MM-dd'T'HH:mm:ssZ` |
| X-Login<mark style="color:red;">\*</mark>       | string | Merchant X-Login API Key                                 |
| Authorization<mark style="color:red;">\*</mark> | string | Authentication signature hash                            |

{% tabs %}
{% tab title="200 Deposit status successfully retrieved." %}

```java
{
    "user_id": "11",
    "deposit_id": 300004285,
    "invoice_id": "989409592",
    "country": "BR",
    "currency": "BRL",
    "local_amount": 53162.00,
    "usd_amount": 1000.00,
    "bonus_amount": 1.50,
    "bonus_relative": "false",
    "payment_method": "VI",
    "payment_type": "CREDIT_CARD",
    "status": "COMPLETED",
    "payer": {
        "document": "17532655253",
        "document_type": "CPF",
        "email": "johnSmith1@directa24.com",
        "first_name": "John",
        "last_name": "Smith",
        "address": {
            "city": "Sao Paulo",
            "state": "SP",
            "street": "John Street 2453",
            "zip_code": "938475-234"
        }
    },
    "fee_amount": 2.50,
    "fee_currency": "USD",
    "card_detail": {
        "card_holder": "John Smith",
        "brand": "Visa",
        "masked_card": "1234 56** **** 6789",
        "expiration": "2023-12",
        "card_type": "DEBIT",
        "transaction_result": "Transaction Approved"
    }
}
```

{% endtab %}

{% tab title="400 The deposit\_id specified is not valid" %}

```
```

{% endtab %}

{% tab title="404 The deposit\_id specified could not be found." %}

```
```

{% endtab %}
{% endtabs %}

## Request

You can trigger the check of the status of a deposit at any moment you consider pertinent. However, every time a deposit changes its status, we will send you a [notification](https://docs.pandablue.com/api-documentation/deposits-api/endpoints/deposit-creation-endpoint/notifications) containing the ID of the deposit so that you can check its status back to retrieve the new deposit's status.

### Example request

In the status endpoint, all the request have to be sent as GET, containing the[ usual headers](https://docs.pandablue.com/api-documentation/technical-and-security-aspects#headers).

Regarding the Authorization value, since the body of the requests will be empty, you should use an empty ("") string or nothing as the `jsonPayload` field.

{% tabs %}
{% tab title="cURL" %}

```bash
curl --location --request GET 'https://api-stg.directa24.com/v3/deposits/300004285' \
--header 'X-Login: xxxxxxx' \
--header 'X-Date: 2020-06-24T17:13:21Z' \
--header 'Authorization: D24 e339247fb57b10c053159cf87d3a88415f9be567beb46a93f6839d9fc45d2c8a' \
--data-raw ''


```

{% endtab %}

{% tab title="JAVA" %}

```java
import java.io.*;
import okhttp3.*;

public class main {
  public static void main(String []args) throws IOException{
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    Request request = new Request.Builder()
      .url("https://api-stg.directa24.com/v3/deposits/300004285")
      .method("GET", null)
      .addHeader("X-Login", "xxxxxxx")
      .addHeader("X-Date", "2020-06-24T17:13:21Z")
      .addHeader("Authorization", "D24 e339247fb57b10c053159cf87d3a88415f9be567beb46a93f6839d9fc45d2c8a")
      .build();
    Response response = client.newCall(request).execute();
    System.out.println(response.body().string());
  }
}


```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using RestSharp;

namespace HelloWorldApplication {
    class HelloWorld {
        static void Main(string[] args) {
            var client = new RestClient("https://api-stg.directa24.com/v3/deposits/300004285");
            client.Timeout = -1;
            var request = new RestRequest(Method.GET);
            request.AddHeader("X-Login", "xxxxxxx");
            request.AddHeader("X-Date", "2020-06-24T17:13:21Z");
            request.AddHeader("Authorization", "D24 e339247fb57b10c053159cf87d3a88415f9be567beb46a93f6839d9fc45d2c8a");
            request.AddParameter("application/json", "",  ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            Console.WriteLine(response.Content);
        }
    }
}


```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api-stg.directa24.com/v3/deposits/300004285",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "X-Login: xxxxxxxx",
    "X-Date: 2020-06-24T17:13:21Z",
    "Authorization: D24 e339247fb57b10c053159cf87d3a88415f9be567beb46a93f6839d9fc45d2c8a"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


```

{% endtab %}
{% endtabs %}

## Example response

{% tabs %}
{% tab title="COMPLETED" %}

```java
{
    "user_id": "11",
    "deposit_id": 300004285,
    "invoice_id": "989409592",
    "country": "BR",
    "currency": "BRL",
    "local_amount": 53162.00,
    "usd_amount": 1000.00,
    "bonus_amount": 100.00,
    "bonus_relative": "false",
    "payment_method": "VI",
    "payment_type": "CREDIT_CARD",
    "status": "COMPLETED",
    "payer": {
        "document": "17532655253",
        "document_type": "CPF",
        "email": "johnSmith1@d24.com",
        "first_name": "John",
        "last_name": "Smith",
        "address": {
            "city": "Sao Paulo",
            "state": "SP",
            "street": "John Street 2453",
            "zip_code": "938475-234"
        }
    },
    "fee_amount": 2.50,
    "fee_currency": "USD",
    "refunded": False,
    "current_payer_verification": "UNMATCHED",
    "card_detail": {
        "card_holder": "John Smith",
        "brand": "Visa",
        "masked_card": "1234 56** **** 6789",
        "expiration": "2023-12",
        "card_type": "DEBIT",
        "transaction_result": "Transaction Approved"
    }
}

```

{% endtab %}

{% tab title="PENDING" %}

```java
{
    "user_id": "11",
    "deposit_id": 300004284,
    "invoice_id": "1000000001",
    "currency": "BRL",
    "amount": 1000.00,
    "bonus_amount": 1.50,
    "payment_method": "VI",
    "payment_type": "CREDIT_CARD",
    "status": "PENDING",
    "fee_amount": 2.50,
    "fee_currency": "USD",
}
```

{% endtab %}

{% tab title="CREATED" %}

```java
{
    "user_id": "11",
    "deposit_id": 300004284,
    "invoice_id": "1000000001",
    "currency": "BRL",
    "amount": 1000.00,
    "bonus_amount": 1.50,
    "status": "CREATED"
}
```

{% endtab %}
{% endtabs %}

### Response fields

| Field name                       | Format  | Description                                                                                                                                                                                                                                |
| -------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `user_id`                        | String  | ID generated for the user on D24 end                                                                                                                                                                                                       |
| `deposit_id`                     | Number  | ID of the deposit on D24 end                                                                                                                                                                                                               |
| `invoice_id`                     | String  | ID of the deposit on the merchant end                                                                                                                                                                                                      |
| `country`                        | String  | [Country ISO code](https://docs.pandablue.com/specifications/countries-specifications#countries-and-currencies)                                                                                                                            |
| `currency`                       | String  | [Local currency code](https://docs.pandablue.com/specifications/countries-specifications#countries-and-currencies)                                                                                                                         |
| `local_amount`                   | Number  | Amount in local currency                                                                                                                                                                                                                   |
| `usd_amount`                     | Number  | Amount in USD                                                                                                                                                                                                                              |
| `bonus_amount`                   | Number  | The amount specified as bonus in the request                                                                                                                                                                                               |
| `bonus_relative`                 | Boolean | Specifies if the `bonus_amount` is absolute or relative. It will be shown only if the `bonus_amount` is not null                                                                                                                           |
| `payment_method`                 | String  | [Payment method code](https://docs.pandablue.com/api-documentation/deposits-api/payment-methods) specified on the deposit request or selected by the user on our checkout. It will be shown only if the user has selected a payment method |
| `payment_type`                   | String  | [Type of the payment method](https://docs.pandablue.com/api-documentation/deposits-api/payment-methods-endpoint#payment-types). It will be shown only if the user has selected a payment method                                            |
| `status`                         | String  | [Status of the deposit](https://docs.pandablue.com/api-documentation/api-codes#deposits-status-codes)                                                                                                                                      |
| `payer[]`                        | Object  | Object containing information about the payer. Only the values you've sent or we've collected will be shown.                                                                                                                               |
| `payer.document`                 | String  | Payer's document of identity                                                                                                                                                                                                               |
| `payer.document_type`            | String  | Payer's type of their document of identity                                                                                                                                                                                                 |
| `payer.email`                    | String  | Payer's email                                                                                                                                                                                                                              |
| `payer.first_name`               | String  | Payer's first name                                                                                                                                                                                                                         |
| `payer.last_name`                | String  | Payer's last name                                                                                                                                                                                                                          |
| `payer.address[]`                | Object  | Object containing the address details about the payer. Only the values you've sent or we've collected will be shown.                                                                                                                       |
| `payer.address.city`             | String  | Payer's city                                                                                                                                                                                                                               |
| `payer.address.state`            | String  | Payer's state ISO code                                                                                                                                                                                                                     |
| `payer.address.street`           | String  | Payer's street                                                                                                                                                                                                                             |
| `payer.address.zip_code`         | String  | Payer's zip code                                                                                                                                                                                                                           |
| `fee_amount`                     | Number  | Fee of the deposit in the currency of your balance. It will be shown only if the payment\_method was sent by you or selected by the customer                                                                                               |
| `fee_currency`                   | String  | Currency of your balance. It will be shown only if the payment\_method was sent by you or selected by the customer                                                                                                                         |
| `card_detail[]`                  | Object  | Details about the credit card of the payer. This object will be shown only in case of credit card deposits and if we have the information.                                                                                                 |
| `card_detail.card_holder`        | String  | Name of the card holder used to pay                                                                                                                                                                                                        |
| `card_detail.brand`              | String  | Brand of the card used to pay                                                                                                                                                                                                              |
| `card_detail.masked_card`        | String  | Masked card number used to pay                                                                                                                                                                                                             |
| `card_detail.expiration`         | String  | Expiration of the card used to pay in format YYYY-MM (`2023-12`)                                                                                                                                                                           |
| `card_detail.card_type`          | String  | Type of card used: CREDIT/DEBIT                                                                                                                                                                                                            |
| `card_detail.transaction_result` | String  | The result message of the credit card transaction                                                                                                                                                                                          |
| `refunded`                       | Boolean | It shows if the deposit it was refunded or not.                                                                                                                                                                                            |
| `current_payer_verification`     | String  | [It shows if the current payer is the same person who creates the deposit](#current_payer_verification). It will be shown only if it is not null.                                                                                          |

## Parameter current\_payer\_verification <a href="#current_payer_verification" id="current_payer_verification"></a>

Through the parameter current\_payer\_verification you can check if the current payer is the same person who created the deposit. Below you can see the possible results for this parameter:\
\
Match --> The document of the person who paid is the same as the one of the person who created the payment.\
\
Unmatch --> The documents are different.\
\
No client document -> It is when there is no document of the person who proceed with the payment (Current payer).\
\
No current payer data -> It is when there is no document of the person who proceed with the payment (Current payer)<br>

{% hint style="warning" %}
In order to make the experience more personalized, we may add more fields to this response's object in the future. Please develop your integration to be able to ignore new fields to avoid any issues.
{% endhint %}

{% hint style="success" %}
If you are not sending all the payer details in the deposit request, make sure you store the details we collect and share with this endpoint so that in future attempts you can re-use them instead of having the payers to fill in the same details every time they deposit.
{% endhint %}

## Status Flow

[Click here](https://docs.pandablue.com/api-documentation/api-codes#deposits-status-codes) to see each Deposit Status meaning.

### Hosted Checkout Status Flow

&#x20;

![Hosted Checkout Status Flow Diagram](https://1770394879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M792I7hN0PzC-Sx95CP%2F-MAmaxNlItB42Ze-IzDj%2F-MAmeg3u4xX0qi35vFPw%2FHostedStatusFlow%20\(1\).png?alt=media\&token=f595c077-b71f-41e2-9b04-faff37635f20)

### OneShot Checkout Status Flow

&#x20;

![OneShot Status Flow Diagram](https://1770394879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M792I7hN0PzC-Sx95CP%2F-MAmaxNlItB42Ze-IzDj%2F-MAmeEV0RUvkskAe1Aji%2FOneShotStatusFlow.png?alt=media\&token=80830196-509f-4ec5-92fb-fc87ece1dfd1)

{% hint style="info" %}

1. 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. COMPLETED and CANCELLED\* are final status.
3. \*There are cases in which the users pays after the deposit expired, or paid an incorrect amount and the deposit gets expired. When that happens manual intervention is required to approve the deposit hence a deposit could change its status from EXPIRED or CANCELLED to COMPLETED.
4. EARLY RELEASED will only be used if you specified it in the deposit request.
5. FOR REVIEW is a transient status we use to specify that the deposit is under revision.
6. If the user doesn't pays, the transaction will be marked as EXPIRED. After 7 days it will change to CANCELLED.
   {% endhint %}

## Status codes

Check all the possible status in the following page:

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