---
title: Checkout.com API Reference v1.0.0
language_tabs:
  - shell: Shell
  - http: HTTP
  - javascript: JavaScript
  - ruby: Ruby
  - python: Python
  - php: PHP
  - java: Java
  - go: Go
toc_footers: []
includes: []
search: true
highlight_theme: darkula
headingLevel: 2

---

<!-- Generator: Widdershins v4.0.1 -->

<h1 id="checkout-com-api-reference">Checkout.com API Reference v1.0.0</h1>

> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

## Get started
Checkout.com provides a collection of APIs that enable you to integrate with our various products and services.
Our APIs accept and return JSON in the HTTP body, and return standard [HTTP response codes](https://www.checkout.com/docs/resources/codes/http-response-codes). You can consume the APIs directly using any HTTP or REST library.
[Sign up for a test account](https://www.checkout.com/get-test-account) to gain access to the sandbox environment, where you can test API calls without affecting live data.
For more information, see:

 - [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints)
 - [API rate limits](https://www.checkout.com/docs/developer-resources/api/api-rate-limits)
 - [API changes](https://www.checkout.com/docs/developer-resources/api/api-changes)
 - [Idempotency](https://www.checkout.com/docs/developer-resources/api/idempotency)
 - [Private connections](https://www.checkout.com/docs/developer-resources/api/private-connections)

## Base URLs
The base URLs you must use for your API calls to the sandbox and production environments are unique to you.

 - `https://{prefix}.api.sandbox.checkout.com/{path}`
 - `https://{prefix}.api.checkout.com/{path}`
 - `https://{prefix}.access.sandbox.checkout.com/{path}`
 - `https://{prefix}.access.checkout.com/{path}`

The unique API endpoint host names resolve to Checkout.com's [IP addresses](https://www.checkout.com/docs/developer-resources/ip-addresses). Do not allowlist these IP addresses.
The `{prefix}` value in each base URL is a string containing the first eight characters of each of your environments' unique `client_id`, excluding the `cli_` prefix.
To find your unique base URL:
1. Sign in to the Dashboard environment you want to retrieve the base URL for:

    - [Sandbox](https://dashboard.sandbox.checkout.com)
    - [Production](https://dashboard.checkout.com)

2. Go to _Developers_ > _Overview_.  
 Your unique base URL is displayed on the _Developer overview_ page. For example, `https://vkuhvk4v.api.checkout.com`.

3. Alternatively, go to _Settings_ > _Account details_.  
 Your unique base URL is displayed under _Connection settings_.

If you are unsure of your client ID or base URL for either environment, contact your account manager or [request support](https://dashboard.checkout.com/support/new?topic=case_account_management_and_access&issue=issue_account_changes).
For more information, see [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints).
## Authentication
When you sign up for an account, you can authenticate with either Access keys (OAuth 2.0), or Secret API keys.
Unless explicitly stated, all endpoints require authentication using either your Access or Secret API Keys. Public keys should only be used in JavaScript or native applications.

 - **Client-side authentication**. Use your [public key](/description/authentication) for client-side authentication. It only has access to a limited set of our APIs – mostly those called as part of your payment environment.

 - **Server-to-server authentication**. Use your [secret key](/description/authentication) or [OAuth](/description/authentication) for server-to-server communication. Support for API keys depends on the endpoint.

Never share your OAuth credentials, API keys, or access tokens. Keep them guarded and secure.
<SecurityDefinitions />

Base URLs:

* <a href="https://{prefix}.api.sandbox.checkout.com">https://{prefix}.api.sandbox.checkout.com</a>

    * **prefix** - Your unique <a href="https://www.checkout.com/docs/developer-resources/api/api-endpoints" target="_blank">base URL</a>. There is no default value. Default: {prefix}

* <a href="https://{prefix}.api.checkout.com">https://{prefix}.api.checkout.com</a>

    * **prefix** - Your unique <a href="https://www.checkout.com/docs/developer-resources/api/api-endpoints" target="_blank">base URL</a>. There is no default value. Default: {prefix}

<a href="https://www.checkout.com/legal/terms-and-policies">Terms of service</a>
Web: <a href="https://dashboard.checkout.com/support">Checkout.com Support</a> 

# Authentication

* API Key (ApiPublicKey)
    - Parameter Name: **Authorization**, in: header. Public keys are for client-side authentication and supported only in JavaScript or native applications.
  
#### Format

- Sandbox – `pk_sbox_xxxxxxxxxxxxxxxxxxxxxxxxxx`

- Production – `pk_xxxxxxxxxxxxxxxxxxxxxxxxxx`

When specifying your public key, use the format `Bearer {{PublicApiKey}}`.

* API Key (ApiSecretKey)
    - Parameter Name: **Authorization**, in: header. You can pass your secret API key in the `Authorization` header of your requests for supported endpoints.

#### Format

- Sandbox – `sk_sbox_xxxxxxxxxxxxxxxxxxxxxxxxxx`

- Production – `sk_xxxxxxxxxxxxxxxxxxxxxxxxxx`

When specifying your secret key, use the format `Bearer {{SecretApiKey}}`.

```
curl --location --request POST 'https://{prefix}.api.checkout.com/{{path}}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{SecretApiKey}}' \
--data-raw '{
"amount": 10000,
"currency": "USD",
"reference": "Visa-USD-Test",
...
}'
```

- oAuth2 authentication. Your OAuth credentials include an access key ID and an access key secret. They correspond to an OAuth 2.0 client ID and a client secret respectively. 

To exchange these credentials for an access token, call the [Request an access token](/tag/access/POST/connect/token) endpoint. Authenticate using basic authentication, with your access key ID as the username and your access key secret as the password.

| Environment   |      Authorization server                            |
|---------------|------------------------------------------------------|
| Sandbox       |  https://{prefix}.access.sandbox.checkout.com/connect/token   |
| Production    |  https://{prefix}.access.checkout.com/connect/token           |

```
curl --location 'https://{prefix}.access.checkout.com/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=ack_...' \
--data-urlencode 'client_secret=...' 
```

The token server returns a Bearer `access_token` in JSON Web Token (JWT) format. Use this token in the `Authorization` header of your API requests.

```
curl --location --request POST 'https://{prefix}.api.checkout.com/{{path}}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data-raw '{
  "amount": 10000,
  "currency": "USD",
  "reference": "Visa-USD-Test",
  ...
}'
```

The `expires_in` field in the response indicates the validity period of your access token in seconds. When your token expires, you must request a new one.

Depending on the Environment against which you're making your requests against you'll need to request the token from a different Authorization Server.

| Environment   |      Authorization Server                            |
|---------------|------------------------------------------------------|
| Sandbox       |  https://{prefix}.access.sandbox.checkout.com/connect/token   |
| Production    |  https://{prefix}.access.checkout.com/connect/token           |

Your base URL `{prefix}` is unique. To learn how to retrieve your unique base URLs for the sandbox and production environments, see [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints).

    - Flow: clientCredentials

    - Token URL = [string](string)

|Scope|Scope Description|
|---|---|
|vault|Access to all Vault resources|
|vault:apme-enrollment|Manage Apple Pay Domain Enrollment|
|vault:customers|Manage customers|
|vault:card-metadata|Read card metadata|
|vault:instruments|Create instruments|
|vault:network-tokens|Manage network tokens|
|vault:tokenization|Tokenize payment instruments|
|vault:real-time-account-updater|Access to real-time account updater|
|gateway|Access to all Gateway resources|
|gateway:payment|Request payments|
|gateway:payment-details|Get payment details|
|gateway:payment-authorizations|Increment authorizations|
|gateway:payment-voids|Void payments|
|gateway:payment-captures|Capture payments|
|gateway:payment-contexts|Manage payment contexts|
|gateway:payment-cancellations|Manage payment cancellations|
|gateway:payment-refunds|Refund payments|
|fx|Foreign exchange services|
|payouts:bank-details|Get bank details|
|sessions:app|App-based authentication|
|sessions:browser|Browser-based authentication|
|disputes|Access to all Disputes resources|
|disputes:view|View disputes|
|disputes:provide-evidence|Provide dispute evidence|
|disputes:accept|Accept disputes|
|disputes:scheme-files|Read dispute scheme files|
|accounts|Manage sub-entities|
|flow|Access to all Flow resources|
|flow:workflows|Manage workflows|
|flow:events|Retrieve events|
|flow:reflow|Manage workflows|
|files|Access to all Files resources|
|files:retrieve|Retrieve files|
|files:upload|Upload files|
|files:download|Download files|
|forward|Access to Forward api|
|forward:secrets|Manage secrets in Forward api|
|balances|Access to all Balances resources|
|balances:view|View balances|
|balances:top-up-instructions|Get top-up instructions|
|transfers|Access to all Transfers resources|
|transfers:view|View transfers|
|transfers:create|Create transfers|
|middleware|Access to all Middleware resources|
|middleware:merchants-secret|Allows merchant identity and Middleware token exchange from a secure execution environment|
|middleware:merchants-public|Allows merchant identity and Middleware token exchange from an insecure execution environment|
|payment-sessions|Access to all Payment Sessions resources|
|payments:search|Search payments|
|reports|Access to all Reports resources|
|reports:view|View reports|
|financial-actions|Access to all Financial actions resources|
|financial-actions:view|View financial actions|
|card-management|Access to all Card management resources|
|issuing:card-management-read|Gives access to card management endpoints with GET operations|
|issuing:card-management-write|Gives access to card management endpoints with POST/ PUT / DELETE operations|
|issuing:controls-read|Gives access to card control endpoints with GET operations|
|issuing:controls-write|Gives access to card control endpoints with POST/ PUT / DELETE operations|
|transactions|Access to all transactions resources|
|issuing:transactions-read|Gives access to get and search transactions|
|issuing:transactions-write|Gives access to simulate transactions for testing purposes|
|issuing-disputes|Access to Issuing disputes resources|
|issuing:disputes-read|Gives access to get disputes|
|issuing:disputes-write|Gives access to create and submit Issuing disputes|
|identity-verification|Access to all Identities endpoints|
|Payment Context|Read payment context|
|agentic:inventory|Manage agentic commerce inventory and reservations|

* API Key (SessionSecret)
    - Parameter Name: **Authorization**, in: header. A base64 encoded value prefixed with `sek_` that gives access to client-side operations for a single authentication within the Sessions API. This value is returned as the `session_secret` when requesting a session.

<h1 id="checkout-com-api-reference-default">Default</h1>

## servers__address-document-verifications

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications`

<h3 id="servers__address-document-verifications-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__address-document-verifications_{address_document_verification_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications/{address_document_verification_id}`

<h3 id="servers__address-document-verifications_{address_document_verification_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__address-document-verifications_{address_document_verification_id}_anonymize

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications/{address_document_verification_id}/anonymize`

<h3 id="servers__address-document-verifications_{address_document_verification_id}_anonymize-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__address-document-verifications_{address_document_verification_id}_attempts

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications/{address_document_verification_id}/attempts`

<h3 id="servers__address-document-verifications_{address_document_verification_id}_attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__address-document-verifications_{address_document_verification_id}_attempts_{attempt_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}`

<h3 id="servers__address-document-verifications_{address_document_verification_id}_attempts_{attempt_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__address-document-verifications_{address_document_verification_id}_attempts_{attempt_id}_assets

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets`

<h3 id="servers__address-document-verifications_{address_document_verification_id}_attempts_{attempt_id}_assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__address-document-verifications_{address_document_verification_id}_pdf-report

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /address-document-verifications/{address_document_verification_id}/pdf-report`

<h3 id="servers__address-document-verifications_{address_document_verification_id}_pdf-report-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__aml-verifications

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/aml-verifications

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/aml-verifications HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/aml-verifications',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/aml-verifications',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/aml-verifications')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/aml-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/aml-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/aml-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /aml-verifications`

<h3 id="servers__aml-verifications-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__aml-verifications_{aml_verification_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /aml-verifications/{aml_verification_id}`

<h3 id="servers__aml-verifications_{aml_verification_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__balances_{id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/balances/{id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/balances/{id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/balances/{id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/balances/{id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/balances/{id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/balances/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/balances/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/balances/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /balances/{id}`

<h3 id="servers__balances_{id}-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ID of the entity.|
|query|query|string|false|The query to apply to limit the currency accounts.|

<h3 id="servers__balances_{id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__connect_token

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/connect/token

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/connect/token HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/connect/token',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/connect/token',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/connect/token')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/connect/token', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/connect/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/connect/token", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /connect/token`

<h3 id="servers__connect_token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__entities_{entityId}_currency-accounts_{currencyAccountId}_top-up-instructions

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions`

<h3 id="servers__entities_{entityid}_currency-accounts_{currencyaccountid}_top-up-instructions-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The ID of the entity that owns the sub-account, or of an entity above it in your hierarchy. A platform can use its own entity ID to reach the sub-accounts of any entity beneath it.|
|currencyAccountId|path|string|true|The ID of the sub-account to retrieve top-up instructions for.|

<h3 id="servers__entities_{entityid}_currency-accounts_{currencyaccountid}_top-up-instructions-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__face-authentications

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/face-authentications',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/face-authentications')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/face-authentications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/face-authentications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /face-authentications`

<h3 id="servers__face-authentications-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__face-authentications_{face_authentication_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /face-authentications/{face_authentication_id}`

<h3 id="servers__face-authentications_{face_authentication_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__face-authentications_{face_authentication_id}_anonymize

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /face-authentications/{face_authentication_id}/anonymize`

<h3 id="servers__face-authentications_{face_authentication_id}_anonymize-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__face-authentications_{face_authentication_id}_attempts

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /face-authentications/{face_authentication_id}/attempts`

<h3 id="servers__face-authentications_{face_authentication_id}_attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__face-authentications_{face_authentication_id}_attempts_{attempt_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /face-authentications/{face_authentication_id}/attempts/{attempt_id}`

<h3 id="servers__face-authentications_{face_authentication_id}_attempts_{attempt_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__face-authentications_{face_authentication_id}_attempts_{attempt_id}_assets

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets`

<h3 id="servers__face-authentications_{face_authentication_id}_attempts_{attempt_id}_assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__workflows_{workflowId}_test

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /workflows/{workflowId}/test`

<h3 id="servers__workflows_{workflowid}_test-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications`

<h3 id="servers__id-document-verifications-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications_{id_document_verification_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications/{id_document_verification_id}`

<h3 id="servers__id-document-verifications_{id_document_verification_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications_{id_document_verification_id}_anonymize

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications/{id_document_verification_id}/anonymize`

<h3 id="servers__id-document-verifications_{id_document_verification_id}_anonymize-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications_{id_document_verification_id}_attempts

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications/{id_document_verification_id}/attempts`

<h3 id="servers__id-document-verifications_{id_document_verification_id}_attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications_{id_document_verification_id}_attempts_{attempt_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}`

<h3 id="servers__id-document-verifications_{id_document_verification_id}_attempts_{attempt_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications_{id_document_verification_id}_attempts_{attempt_id}_assets

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets`

<h3 id="servers__id-document-verifications_{id_document_verification_id}_attempts_{attempt_id}_assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__id-document-verifications_{id_document_verification_id}_pdf-report

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /id-document-verifications/{id_document_verification_id}/pdf-report`

<h3 id="servers__id-document-verifications_{id_document_verification_id}_pdf-report-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__applicants

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/applicants

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/applicants HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/applicants',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/applicants',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/applicants')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/applicants', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/applicants", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /applicants`

<h3 id="servers__applicants-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__applicants_{applicant_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /applicants/{applicant_id}`

<h3 id="servers__applicants_{applicant_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__applicants_{applicant_id}_anonymize

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /applicants/{applicant_id}/anonymize`

<h3 id="servers__applicants_{applicant_id}_anonymize-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__create-and-open-idv

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/create-and-open-idv

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/create-and-open-idv HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/create-and-open-idv',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/create-and-open-idv',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/create-and-open-idv')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/create-and-open-idv', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/create-and-open-idv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/create-and-open-idv", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /create-and-open-idv`

<h3 id="servers__create-and-open-idv-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications`

<h3 id="servers__identity-verifications-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications_{identity_verification_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications/{identity_verification_id}`

<h3 id="servers__identity-verifications_{identity_verification_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications_{identity_verification_id}_anonymize

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications/{identity_verification_id}/anonymize`

<h3 id="servers__identity-verifications_{identity_verification_id}_anonymize-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications_{identity_verification_id}_attempts

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications/{identity_verification_id}/attempts`

<h3 id="servers__identity-verifications_{identity_verification_id}_attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications_{identity_verification_id}_attempts_{attempt_id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications/{identity_verification_id}/attempts/{attempt_id}`

<h3 id="servers__identity-verifications_{identity_verification_id}_attempts_{attempt_id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications_{identity_verification_id}_attempts_{attempt_id}_assets

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets`

<h3 id="servers__identity-verifications_{identity_verification_id}_attempts_{attempt_id}_assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__identity-verifications_{identity_verification_id}_pdf-report

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /identity-verifications/{identity_verification_id}/pdf-report`

<h3 id="servers__identity-verifications_{identity_verification_id}_pdf-report-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__transfers

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/transfers

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/transfers HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/transfers',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/transfers',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/transfers')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/transfers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/transfers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/transfers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /transfers`

<h3 id="servers__transfers-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

## servers__transfers_{id}

> Code samples

```shell
# You can also use wget
curl -X SERVERS https://{prefix}.api.sandbox.checkout.com/transfers/{id}

```

```http
SERVERS https://{prefix}.api.sandbox.checkout.com/transfers/{id} HTTP/1.1

```

```javascript

fetch('https://{prefix}.api.sandbox.checkout.com/transfers/{id}',
{
  method: 'SERVERS'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

result = RestClient.servers 'https://{prefix}.api.sandbox.checkout.com/transfers/{id}',
  params: {
  }

p JSON.parse(result)

```

```python
import requests

r = requests.servers('https://{prefix}.api.sandbox.checkout.com/transfers/{id}')

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('SERVERS','https://{prefix}.api.sandbox.checkout.com/transfers/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/transfers/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("SERVERS");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("SERVERS", "https://{prefix}.api.sandbox.checkout.com/transfers/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

`SERVERS /transfers/{id}`

<h3 id="servers__transfers_{id}-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|

<aside class="success">
This operation does not require authentication
</aside>

<h1 id="checkout-com-api-reference-access">Access</h1>

Create an access token to begin using our APIs.

## Request an access token

<a id="opIdrequestAnAccessToken"></a>

> Code samples

```csharp
// Please refer to https://github.com/checkout/checkout-sdk-net on how to setup the SDK with OAuth
try
{
    ICheckoutApi api = CheckoutSdk.Builder().OAuth()
        .ClientCredentials("client_id", "client_secret")
        .Scopes(OAuthScope.Vault) // more scopes available
        .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
        .HttpClientFactory(new DefaultHttpClientFactory())
        .Build();
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```curl
curl --location 'https://{prefix}.access.checkout.com/connect/token'
  --header 'Content-Type: application/x-www-form-urlencoded'
  --data-urlencode 'grant_type=client_credentials'
  --data-urlencode 'client_id=ack_...' 
  --data-urlencode 'client_secret=...'
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// SDK instantiation for OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Files, configuration.Flow, configuration.Fx, configuration.Gateway,
				configuration.Marketplace, configuration.SessionsApp, configuration.SessionsBrowser,
				configuration.Vault, configuration.PayoutsBankDetails, configuration.Disputes}). // more scopes available
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}
```

```java
// Please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// SDK instantiation for OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FILES, OAuthScope.FLOW, OAuthScope.FX, OAuthScope.GATEWAY,
            OAuthScope.MARKETPLACE, OAuthScope.SESSIONS_APP, OAuthScope.SESSIONS_BROWSER,
            OAuthScope.VAULT, OAuthScope.PAYOUTS_BANK_DETAILS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();
```

```node
import { Checkout } from 'checkout-sdk-node';

const cko = new Checkout();

try {
	const access_token = await cko.access.request({
		grant_type: 'client_credentials',
		client_id: 'ack_XXXX',
		client_secret: 'XXXXX',
		scope: 'gateway',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Balances])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();
```

```python
# please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.oauth_scopes import OAuthScopes

# SDK instantiation for OAuth
api = CheckoutSdk.builder() \
    .oauth() \
    .client_credentials('client_id', 'client_secret') \
    .scopes([OAuthScopes.GATEWAY, OAuthScopes.VAULT, OAuthScopes.PAYOUTS_BANK_DETAILS,
             OAuthScopes.SESSIONS_APP, OAuthScopes.SESSIONS_BROWSER, OAuthScopes.FX, OAuthScopes.MARKETPLACE,
             OAuthScopes.FILES, OAuthScopes.TRANSFERS, OAuthScopes.BALANCES_VIEW]) \
    .build()
```

`POST /connect/token`

OAuth endpoint to exchange your access key ID and access key secret for an access token.

> Body parameter

```yaml
grant_type: client_credentials
client_id: ack_clckqmmnyfiupexjew7shh5ahe
client_secret: Pmg36sDWQ9WxtPR3

```

<h3 id="request-an-access-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|object|false|none|
|» grant_type|body|string|false|none|
|» client_id|body|string|false|Access key ID|
|» client_secret|body|string|false|Access key secret|
|» scope|body|string|false|The access key scope|

#### Enumerated Values

|Parameter|Value|
|---|---|
|» grant_type|client_credentials|

> Example responses

> 200 Response

```json
{
  "access_token": "2YotnFZFEjr1zCsicMWpAA",
  "token_type": "example",
  "expires_in": 3600
}
```

<h3 id="request-an-access-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK - A successful access token response as per [RFC6749](https://tools.ietf.org/html/rfc6749#section-4.4.3)|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad request - An unsuccessful access token response as per [RFC6749](https://tools.ietf.org/html/rfc6749#section-4.4.3)|Inline|

<h3 id="request-an-access-token-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» access_token|string|false|none|none|
|» token_type|string|false|none|none|
|» expires_in|number|false|none|none|

Status Code **400**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» error|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|error|invalid_request|
|error|invalid_client|
|error|invalid_grant|
|error|unauthorized_client|
|error|unsupported_grant_type|
|error|invalid_scope|

<aside class="success">
This operation does not require authentication
</aside>

<h1 id="checkout-com-api-reference-apple-pay">Apple Pay</h1>

Manage your Apple Pay certificates in order to process payments via Apple Pay.

## Upload a payment processing certificate

<a id="opIduploadApplePayCertificate"></a>

> Code samples

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('sk_sbox_XXXXX', {
	pk: 'pk_sbox_XXXXX',
});

try {
	const apple = await cko.applePay.upload({
		content: 'XXXXXXX', // make sure you escape the characters
	});
} catch (err) {
	console.log(err.name);
}
```

`POST /applepay/certificates`

Upload a payment processing certificate. This will allow you to start processing payments via Apple Pay.

> Body parameter

```json
{
  "content": "MIIEfTCCBCOgAwIBAgIID/asezaWNycwCgYIKoZIzj0EAwIwgYAxNDAyBgNVBAMMK0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENBIC0gRzIxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0yMTA2MTExMzQ0MjVaFw0yMzA3MTExMzQ0MjRaMIGuMS0wKwYKCZImiZPyLGQBAQwdbWVyY2hhbnQuY29tLmNoZWNrb3V0LnNhbmRib3gxQzBBBgNVBAMMOkFwcGxlIFBheSBQYXltZW50IFByb2Nlc3Npbmc6bWVyY2hhbnQuY29tLmNoZWNrb3V0LnNhbmRib3gxEzARBgNVBAsMCkUzMlhCUUs0UTUxFjAUBgNVBAoMDUNoZWNrb3V0IEx0ZC4xCzAJBgNVBAYTAkdCMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsvyUM9D1cssldH+VPptEn4VAw/Q6ovJuHVlyBSRaPGLHFce04lCiT/xnXOWRkUxyCzQWKhfG2zo19u4s+evx7aOCAlUwggJRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUhLaEzDqGYnIWWZToGqO9SN863wswRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzABhitodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxld3dkcmNhMjAxMIIBHQYDVR0gBIIBFDCCARAwggEMBgkqhkiG92NkBQEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5LzA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXd3ZHJjYTIuY3JsMB0GA1UdDgQWBBRNhvr33NDuM4QxBZd16a+ACbHoEzAOBgNVHQ8BAf8EBAMCAygwTwYJKoZIhvdjZAYgBEIMQDdGRjg0REI5MDE5NkVGN0I5RTc4NDZEMjg4NzZCNkJGRDU2RjM4MDlCNzUyNjAzRDM4QzcxNUJFMTY2M0JENEMwCgYIKoZIzj0EAwIDSAAwRQIgTjywMwOrLX3TwDUrPn7yDGL/dhc+VNudv0uGBOWRyXACIQClFQFvgx+hfTwVdHt8klrswpgtZtbYjs74p9GYuc8Puw=="
}
```

<h3 id="upload-a-payment-processing-certificate-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[ApplePayCertificateRequest](#schemaapplepaycertificaterequest)|false|none|

> Example responses

> 201 Response

```json
{
  "id": "aplc_hefptsiydvkexnzzb35zrlqgfq",
  "public_key_hash": "tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6Nl0=",
  "valid_from": "2021-01-01T17:32:28Z",
  "valid_until": "2025-01-01T17:32:28Z"
}
```

<h3 id="upload-a-payment-processing-certificate-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Certificate uploaded successfully|[ApplePayCertificateResponse](#schemaapplepaycertificateresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiPublicKey
</aside>

## Enroll a domain to the Apple Pay Service

<a id="opIdApplePayEnrollMerchant"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/applepay/enrollments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/applepay/enrollments HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "domain": "someDomain.com"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/applepay/enrollments',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/applepay/enrollments',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/applepay/enrollments', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/applepay/enrollments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applepay/enrollments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/applepay/enrollments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/applepay/enrollments";
      
      string json = @"{
  ""domain"": ""someDomain.com""
}";
      ApplePayEnrollmentRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(ApplePayEnrollmentRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(ApplePayEnrollmentRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /applepay/enrollments`

Enroll a domain to the Apple Pay Service

> Body parameter

```json
{
  "domain": "someDomain.com"
}
```

<h3 id="enroll-a-domain-to-the-apple-pay-service-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[ApplePayEnrollmentRequest](#schemaapplepayenrollmentrequest)|false|none|

> Example responses

> 422 Response

```json
{
  "error_codes": [
    "invalid_request"
  ],
  "error_type": "invalid_request",
  "request_id": "string"
}
```

<h3 id="enroll-a-domain-to-the-apple-pay-service-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Merchant successfully enrolled with no content to return|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ApplePayEnrollmentErrorResponse](#schemaapplepayenrollmenterrorresponse)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway|None|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway Timeout|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:apme-enrollment )
</aside>

## Generate a certificate signing request

<a id="opIdgenerateApplePaySigningRequest"></a>

> Code samples

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('sk_sbox_XXXXX', {
	pk: 'pk_sbox_XXXXX',
});

try {
	const apple = await cko.applePay.generate();
} catch (err) {
	console.log(err.name);
}
```

`POST /applepay/signing-requests`

Generate a certificate signing request. You'll need to upload this to your Apple Developer account to download a payment processing certificate.

> Body parameter

```json
{
  "protocol_version": "ec_v1"
}
```

<h3 id="generate-a-certificate-signing-request-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[ApplePaySigningRequest](#schemaapplepaysigningrequest)|false|none|

> Example responses

> 200 Response

```json
{
  "content": "-----BEGIN CERTIFICATE REQUEST-----MIIBSDCB8AIBADCBjzELMAkGA1UEBhMCR0IxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMRUwEwYDVQQKDAxDaGVja291dC5jb20xCzAJBgNVBA8MAklUMRUwEwYDVQQDDAxjaGVja291dC5jb20xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAY2hlY2tvdXQuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXf/MDFRLSblykajGm0GE+lUNoOIEa0DbWc7Bv3s55bYtW1fJo2/MJIPojUKuKUx2VsEfGmmqXKbq4IhAr0bM8TAKBggqhkjOPQQDAgNHADBEAiAo1Dv4TXTacSeIfy4HDjzPMQY2+OxTW6szRJjGyfKgXQIgdHAX0BmI+1rozysjXv8MvoxehQIGACQ+UWJle+UZ2ms=-----END CERTIFICATE REQUEST-----"
}
```

<h3 id="generate-a-certificate-signing-request-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Generated signing request successfully|[ApplePaySigningRequestResponse](#schemaapplepaysigningrequestresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiPublicKey
</aside>

<h1 id="checkout-com-api-reference-bacs-direct-debit">Bacs Direct Debit</h1>

Send Bacs Direct Debit pre-notifications to payers ahead of collecting funds.

## Send a Bacs Direct Debit pre-notification

<a id="opIdsendBacsNotification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: API_KEY'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "source_id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "notification_type": "advance_notice",
  "collection_date": "2026-07-15",
  "amount": 4999,
  "currency": "GBP",
  "reference": "INV-12345",
  "customer_email": "customer@example.com",
  "billing_descriptor": "CHECKOUT",
  "support_email": "support@test.com",
  "support_phone": "+447700900123"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/apms/bacs/notifications";
      
      string json = @"{
  ""source_id"": ""src_wmlfc3zyhqzehihu7giusaaawu"",
  ""notification_type"": ""advance_notice"",
  ""collection_date"": ""2026-07-15"",
  ""amount"": 4999,
  ""currency"": ""GBP"",
  ""reference"": ""INV-12345"",
  ""customer_email"": ""customer@example.com"",
  ""billing_descriptor"": ""CHECKOUT"",
  ""support_email"": ""support@test.com"",
  ""support_phone"": ""+447700900123""
}";
      BacsNotificationRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(BacsNotificationRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(BacsNotificationRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /apms/bacs/notifications`

Send a Bacs Direct Debit pre-notification (advance notice) to a payer ahead of collecting funds from their account.

> Body parameter

```json
{
  "source_id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "notification_type": "advance_notice",
  "collection_date": "2026-07-15",
  "amount": 4999,
  "currency": "GBP",
  "reference": "INV-12345",
  "customer_email": "customer@example.com",
  "billing_descriptor": "CHECKOUT",
  "support_email": "support@test.com",
  "support_phone": "+447700900123"
}
```

<h3 id="send-a-bacs-direct-debit-pre-notification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[BacsNotificationRequest](#schemabacsnotificationrequest)|false|none|

> Example responses

> 201 Response

```json
{
  "event_id": "evt_lzr4csdtddwetactr6phd3kea4"
}
```

<h3 id="send-a-bacs-direct-debit-pre-notification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Pre-notification created successfully|[BacsNotificationResponse](#schemabacsnotificationresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-google-pay">Google Pay</h1>

Manage your domain enrollments to process payments via Google Pay.

## Enroll an entity to the Google Pay Service

<a id="opIdGooglePayEnrollMerchant"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
  "email_address": "test@gmail.com",
  "accept_terms_of_service": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments";
      
      string json = @"{
  ""entity_id"": ""ent_uzm3uxtssvmuxnyrfdffcyjxeu"",
  ""email_address"": ""test@gmail.com"",
  ""accept_terms_of_service"": true
}";
      GooglePayEnrollmentRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(GooglePayEnrollmentRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(GooglePayEnrollmentRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /googlepay/enrollments`

Enroll an entity to the Google Pay Service. 

You must accept the <a href="https://payments.developers.google.com/terms/sellertos">Google terms of service</a> to use this feature.

> Body parameter

```json
{
  "entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
  "email_address": "test@gmail.com",
  "accept_terms_of_service": true
}
```

<h3 id="enroll-an-entity-to-the-google-pay-service-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[GooglePayEnrollmentRequest](#schemagooglepayenrollmentrequest)|false|none|

> Example responses

> 201 Response

```json
{
  "merchant_id": "01234567890123456789",
  "tos_accepted_time": "2014-10-02T15:01:23Z",
  "state": "ACTIVE"
}
```

<h3 id="enroll-an-entity-to-the-google-pay-service-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Enrolled successfully.|[GooglePayEnrollmentResponse](#schemagooglepayenrollmentresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid request payload.|[GooglePayErrorResponse](#schemagooglepayerrorresponse)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal server error.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:gpayme-enrollment )
</aside>

## Register a web domain for an enrolled entity

<a id="opIdGooglePayRegisterDomain"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "web_domain": "some.example.com"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domain";
      
      string json = @"{
  ""web_domain"": ""some.example.com""
}";
      GooglePayRegisterDomainRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(GooglePayRegisterDomainRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(GooglePayRegisterDomainRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /googlepay/enrollments/{entity_id}/domain`

Associates a web domain with the specified enrolled entity.

> Body parameter

```json
{
  "web_domain": "some.example.com"
}
```

<h3 id="register-a-web-domain-for-an-enrolled-entity-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entity_id|path|string|true|Unique identifier of the entity.|
|body|body|[GooglePayRegisterDomainRequest](#schemagooglepayregisterdomainrequest)|false|none|

> Example responses

> 422 Response

```json
{
  "error_codes": [
    "string"
  ],
  "error_type": "invalid_request",
  "request_id": "string"
}
```

<h3 id="register-a-web-domain-for-an-enrolled-entity-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Domain registered successfully (no content).|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid domain format or missing parameter.|[GooglePayErrorResponse](#schemagooglepayerrorresponse)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal server error.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:gpayme-enrollment )
</aside>

## Get registered domains for an entity

<a id="opIdGooglePayGetRegisteredDomains"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/domains";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /googlepay/enrollments/{entity_id}/domains`

Retrieves all web domains registered for the specified entity.

<h3 id="get-registered-domains-for-an-entity-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entity_id|path|string|true|Unique identifier of the entity.|

> Example responses

> 200 Response

```json
{
  "domains": [
    "example.com"
  ]
}
```

<h3 id="get-registered-domains-for-an-entity-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successfully retrieved list of domains.|[GooglePayDomainListResponse](#schemagooglepaydomainlistresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity was not found or no domains are registered.|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal server error.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:gpayme-enrollment )
</aside>

## Get enrollment state

<a id="opIdGooglePayGetEnrollmentState"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/googlepay/enrollments/{entity_id}/state";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /googlepay/enrollments/{entity_id}/state`

Returns the current enrollment state of an entity.

<h3 id="get-enrollment-state-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entity_id|path|string|true|Unique identifier of the entity.|

> Example responses

> 200 Response

```json
{
  "state": "ACTIVE"
}
```

<h3 id="get-enrollment-state-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successfully retrieved enrollment state.|[GooglePayEnrollmentStateResponse](#schemagooglepayenrollmentstateresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found.|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal server error.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:gpayme-enrollment )
</aside>

<h1 id="checkout-com-api-reference-balances">Balances</h1>

View the balances for sub-accounts in an entity, and retrieve the bank details used to top them up.

## Retrieve entity balances

<a id="opIdgetEntityBalances"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Balances;
using Checkout.Common;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Balances)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

BalancesQuery query = new BalancesQuery {Query = "currency:" + Currency.GBP};

try
{
    BalancesResponse balances = await api.BalancesClient()
        .RetrieveEntityBalances("entitiy_id", query);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"fmt"
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/balances"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Balances}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

query := balances.QueryFilter{Query: fmt.Sprintf("currency:%s", common.GBP)}

response, err := api.Balances.RetrieveEntityBalances("entity_id", query)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.balances.BalancesQuery;
import com.checkout.balances.BalancesResponse;
import com.checkout.common.Currency;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.BALANCES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

BalancesQuery query = BalancesQuery.builder()
    .query("currency:" + Currency.EUR)
    .build();

try {
    BalancesResponse response = api.balancesClient().retrieveEntityBalances("balance_id", query).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\Balances\BalancesQuery;
use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Currency;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Balances])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$query = new BalancesQuery();
$query->query = "currency:" . Currency::$GBP;

try {
    $response = $api->getBalancesClient()->retrieveEntityBalances("entity_id", $query);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.balances.balances import BalancesQuery

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.BALANCES]) 
    .build()
)

query = BalancesQuery()
query.query = "string"

try:
    response = api.balances.retrieve_entity_balances("entity_id", query)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /balances/{id}`

Use this endpoint to retrieve balances for each sub-account in an entity. <br/>*Note:* The sub-account is referred to as _currency account_ in the API.

<h3 id="retrieve-entity-balances-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|withCurrencyAccountId|query|boolean|false|Specifies if the response should include the sub-account ID that corresponds to each set of balances.|
|balancesAt|query|string(date-time)|false|A UTC datetime to retrieve historical balances at a specific point in time, in the format `yyyy-MM-ddTHH:mm:ssZ` (e.g. `2026-05-06T13:59:59.9999999+00:00`). Must be in the past. If omitted, the response returns live balances.|
|id|path|string|true|The ID of the entity.|
|query|query|string|false|The query to apply to limit the currency accounts.|

> Example responses

> 200 Response

```json
{
  "data": [
    {
      "currency_account_id": "ca_g5y7d6jo4e2urgforcbf2ey5jm",
      "descriptor": "Revenue Account 1",
      "holding_currency": "EUR",
      "balances_as_of": "2026-05-06T13:59:59.9999999+00:00",
      "balances": {
        "pending": 23000,
        "available": 50000,
        "payable": 2700,
        "collateral": 6000,
        "operational": 7000,
        "collateral_breakdown": {
          "fixed_reserve": 4000,
          "rolling_reserve": 2000
        }
      }
    }
  ]
}
```

<h3 id="retrieve-entity-balances-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Balances retrieved successfully.|[BalancesResponse](#schemabalancesresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Invalid query parameter — for example, an unsupported `query` filter value, a non-boolean `withCurrencyAccountId`, or a malformed `balancesAt` value.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="retrieve-entity-balances-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: balances ), ApiSecretKey
</aside>

## Retrieve top-up instructions

<a id="opIdgetTopUpInstructions"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions`

Use this endpoint to retrieve the bank details required to top up a sub-account, along with the payment reference that attributes an incoming payment to that sub-account. <br/>*Note:* The sub-account is referred to as _currency account_ in the API.

<h3 id="retrieve-top-up-instructions-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The ID of the entity that owns the sub-account, or of an entity above it in your hierarchy. A platform can use its own entity ID to reach the sub-accounts of any entity beneath it.|
|currencyAccountId|path|string|true|The ID of the sub-account to retrieve top-up instructions for.|

> Example responses

> 200 Response

```json
{
  "currency_account_id": "ca_g5y7d6jo4e2urgforcbf2ey5jm",
  "currency": "USD",
  "payment_reference": "TP-ABC123",
  "bank_details": {
    "domestic": {
      "beneficiary_account_name": "Acme Inc",
      "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
      "bank_name": "Example Bank",
      "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
      "account_number": "1234567890",
      "sort_code": "000000",
      "routing_number": "000000000",
      "iban": "GB00EXAM00000000000000",
      "swift_code": "TESTUS00XXX"
    },
    "international": {
      "beneficiary_account_name": "Acme Inc",
      "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
      "bank_name": "Example Bank",
      "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
      "account_number": "1234567890",
      "sort_code": "000000",
      "routing_number": "000000000",
      "iban": "GB00EXAM00000000000000",
      "swift_code": "TESTUS00XXX"
    }
  }
}
```

<h3 id="retrieve-top-up-instructions-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Top-up instructions retrieved successfully.|[TopUpInstructionsResponse](#schematopupinstructionsresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Invalid `entityId` or `currencyAccountId`.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The credential lacks access to top-up instructions, or top-ups aren't enabled for the sub-account.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The specified sub-account could not be found, or has no top-up instructions available.|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|The request could not be completed. Try again later.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: balances balances:top-up-instructions ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-business-details">Business details</h1>

View and manage the business details of your SaaS seller sub-entities.

## Get a sub-entity's business details

<a id="opIdgetSubEntitysBusinessDetails"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /accounts/entities/{id}/business-details`

Retrieve the business details of one of your sub-entities, onboarded through our <a href="https://www.checkout.com/docs/platforms" target="_blank">Platforms solution</a>.

Business details are the parts of a sub-entity's company information that can change after onboarding. If a change to them is under review, this endpoint returns the submitted values with a `pending` status by default, so you can retrieve a change you've already submitted.

To retrieve the values currently in effect while a change is under review, send `GET /accounts/entities/{id}/business-details?status=active`. To retrieve only a change under review, send `GET /accounts/entities/{id}/business-details?status=pending`. The `pending` values include the documents submitted with the change.

<h3 id="get-a-sub-entity's-business-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The sub-entity's ID.|
|status|query|string|false|The version of the sub-entity's business details to return. `status` selects which values are returned, but does not filter them.|

#### Detailed descriptions

**status**: The version of the sub-entity's business details to return. `status` selects which values are returned, but does not filter them.

Use `active` to retrieve the values currently in effect. This shows you the values a pending change would replace once approved.

Use `pending` to retrieve the values submitted in a change that is still under review. The request returns `404` if no change is under review.

If you omit this parameter and a change is under review, the endpoint returns the `pending` values. Otherwise, it returns the `active` values.

#### Enumerated Values

|Parameter|Value|
|---|---|
|status|active|
|status|pending|

> Example responses

> Business details retrieved successfully

```json
{
  "legal_name": "The Online Retailer",
  "trading_name": "Online Retail Co",
  "registered_address": {
    "address_line1": "444 Test Avenue",
    "city": "Anytown",
    "zip": "67890-1234",
    "country": "US",
    "state": "FL"
  },
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "status": "active",
  "additional_trading_names": [
    "Online Retail"
  ]
}
```

```json
{
  "legal_name": "The Online Retailer",
  "trading_name": "Online Retail Co",
  "registered_address": {
    "address_line1": "444 Test Avenue",
    "city": "Anytown",
    "zip": "67890-1234",
    "country": "US",
    "state": "FL"
  },
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "status": "pending",
  "additional_trading_names": [
    "Online Retail"
  ],
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "file_wxglze3wwywujg4nna5fb7ldli"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "file_6lbss42ezvoufcb2beo76rvwly"
    },
    "proof_of_registered_address": {
      "type": "proof_of_address",
      "front": "file_ovcw6dxu2rjecmb4nqzk3wtgli"
    }
  }
}
```

<h3 id="get-a-sub-entity's-business-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Business details retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Sub-entity not found, or the sub-entity has no business details|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data sent|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests|None|

<h3 id="get-a-sub-entity's-business-details-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|status|active|
|status|pending|
|type|incorporation_document|
|type|proof_of_address|
|type|proof_of_address|
|status|active|
|status|pending|
|type|incorporation_document|
|type|proof_of_address|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Update a sub-entity's business details

<a id="opIdputSubEntitysBusinessDetails"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "legal_name": "The Online Retailer",
  "trading_name": "Online Retail Co",
  "registered_address": {
    "address_line1": "444 Test Avenue",
    "city": "Anytown",
    "zip": "67890-1234",
    "country": "US",
    "state": "FL"
  },
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "additional_trading_names": [
    "Online Retail"
  ],
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "file_wxglze3wwywujg4nna5fb7ldli"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "file_6lbss42ezvoufcb2beo76rvwly"
    },
    "proof_of_registered_address": {
      "type": "proof_of_address",
      "front": "file_ovcw6dxu2rjecmb4nqzk3wtgli"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/business-details";

      
      
      var result = await PutAsync(id, null, url);
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /accounts/entities/{id}/business-details`

Submit a change to the business details of one of your sub-entities, onboarded through our <a href="https://www.checkout.com/docs/platforms" target="_blank">Platforms solution</a>.

This endpoint opens a change request for review. The sub-entity keeps its current business details until the review completes, and the response returns the values you submitted with a `pending` status.

You can have only one change under review at a time. Provide the complete set of business details, not only the fields you want to change. You cannot change the sub-entity's country.

You cannot currently amend a change after you submit it. Until the change has been assessed, a further `PUT` request returns `409`. To retrieve the change in progress, send a `GET` request with `status=pending`. If you submitted incorrect values, wait for the assessment outcome and submit the corrected values as a new change, or resolve any requirements the assessment raises, which you can retrieve from `GET /accounts/entities/{id}/requirements`. Support for amending a change that is under review is planned.

Some changes must include a supporting document. Changing `legal_name`, `trading_name`, or `additional_trading_names` requires `documents.company_verification`. Changing `principal_address` requires `documents.proof_of_principal_address`. Changing `registered_address` requires `documents.proof_of_registered_address`. The registered address and principal address require separate documents.

You do not need to provide a document if you have not changed the fields it supports, or if a valid document is already on file.

> Body parameter

```json
{
  "legal_name": "The Online Retailer",
  "trading_name": "Online Retail Co",
  "registered_address": {
    "address_line1": "444 Test Avenue",
    "city": "Anytown",
    "zip": "67890-1234",
    "country": "US",
    "state": "FL"
  },
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "additional_trading_names": [
    "Online Retail"
  ],
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "file_wxglze3wwywujg4nna5fb7ldli"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "file_6lbss42ezvoufcb2beo76rvwly"
    },
    "proof_of_registered_address": {
      "type": "proof_of_address",
      "front": "file_ovcw6dxu2rjecmb4nqzk3wtgli"
    }
  }
}
```

<h3 id="update-a-sub-entity's-business-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The sub-entity's ID.|
|body|body|any|true|none|

> Example responses

> Change submitted successfully and is now under review

```json
{
  "legal_name": "The Online Retailer",
  "trading_name": "Online Retail Co",
  "registered_address": {
    "address_line1": "444 Test Avenue",
    "city": "Anytown",
    "zip": "67890-1234",
    "country": "US",
    "state": "FL"
  },
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "status": "pending",
  "additional_trading_names": [
    "Online Retail"
  ],
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "file_wxglze3wwywujg4nna5fb7ldli"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "file_6lbss42ezvoufcb2beo76rvwly"
    },
    "proof_of_registered_address": {
      "type": "proof_of_address",
      "front": "file_ovcw6dxu2rjecmb4nqzk3wtgli"
    }
  }
}
```

> 409 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "conflict",
  "error_codes": [
    "Entity already has a pending update."
  ]
}
```

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "invalid_request",
  "error_codes": [
    "'trading_name' is invalid.",
    "'business_type' is not part of this resource."
  ]
}
```

<h3 id="update-a-sub-entity's-business-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Change submitted successfully and is now under review|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Sub-entity not found, or the sub-entity has no business details|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A change to the sub-entity's business details is already under review. You can have only one at a time|[ValidationError](#schemavalidationerror)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unable to process the request. A field is invalid or missing, is not part of this resource, or was changed without its supporting document|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|We could not validate the change because an upstream service was unavailable. No change was created, so you can retry the request|None|

<h3 id="update-a-sub-entity's-business-details-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|status|active|
|status|pending|
|type|incorporation_document|
|type|proof_of_address|
|type|proof_of_address|
|status|active|
|status|pending|
|type|incorporation_document|
|type|proof_of_address|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-card-testing">Card testing</h1>

Simulate transactions using a card on the sandbox environment.

## Simulate authorization

<a id="opIdsimulateAuthorization"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "card": {
    "id": "crd_fa6psq242dcd6fdn5gifcq1491",
    "expiry_month": 5,
    "expiry_year": 2025
  },
  "transaction": {
    "type": "purchase",
    "amount": 2500,
    "currency": "GBP",
    "merchant": {
      "category_code": "7399"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations";
      
      string json = @"{
  ""card"": {
    ""id"": ""crd_fa6psq242dcd6fdn5gifcq1491"",
    ""expiry_month"": 5,
    ""expiry_year"": 2025
  },
  ""transaction"": {
    ""type"": ""purchase"",
    ""amount"": 2500,
    ""currency"": ""GBP"",
    ""merchant"": {
      ""category_code"": ""7399""
    }
  }
}";
      SimulateAuthorizationRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SimulateAuthorizationRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SimulateAuthorizationRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/simulate/authorizations`

Simulate an authorization request with a card you issued previously.

> Body parameter

```json
{
  "card": {
    "id": "crd_fa6psq242dcd6fdn5gifcq1491",
    "expiry_month": 5,
    "expiry_year": 2025
  },
  "transaction": {
    "type": "purchase",
    "amount": 2500,
    "currency": "GBP",
    "merchant": {
      "category_code": "7399"
    }
  }
}
```

<h3 id="simulate-authorization-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[SimulateAuthorizationRequest](#schemasimulateauthorizationrequest)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "trx_aaqc4uaaybigcaaqc4uaayfiga",
  "status": "Authorized"
}
```

<h3 id="simulate-authorization-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Authorization processed successfully|[SimulateAuthorizationResponse](#schemasimulateauthorizationresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-write )
</aside>

## Simulate incrementing an authorization

<a id="opIdsimulateIncrementalAuthorization"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "amount": 3500
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/authorizations";
      
      string json = @"{
  ""amount"": 3500
}";
      SimulateIncrementalAuthorizationRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SimulateIncrementalAuthorizationRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SimulateIncrementalAuthorizationRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/simulate/authorizations/{id}/authorizations`

Simulate an incremental authorization request for an existing approved transaction.

Incremental authorizations increase the total authorized amount of the transaction. For example, adding a restaurant bill to an existing hotel booking.

> Body parameter

```json
{
  "amount": 3500
}
```

<h3 id="simulate-incrementing-an-authorization-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|[IssuingTransactionId](#schemaissuingtransactionid)|true|none|
|body|body|[SimulateIncrementalAuthorizationRequest](#schemasimulateincrementalauthorizationrequest)|true|none|

> Example responses

> 201 Response

```json
{
  "status": "Authorized"
}
```

<h3 id="simulate-incrementing-an-authorization-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Authorization processed successfully|[SimulateIncrementalAuthorizationResponse](#schemasimulateincrementalauthorizationresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Authorization not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-write )
</aside>

## Simulate clearing

<a id="opIdsimulatePresentment"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "amount": 2500
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/presentments";
      
      string json = @"{
  ""amount"": 2500
}";
      PresentmentRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(PresentmentRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PresentmentRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/simulate/authorizations/{id}/presentments`

Simulate the clearing of an existing approved authorization.

> Body parameter

```json
{
  "amount": 2500
}
```

<h3 id="simulate-clearing-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|[IssuingTransactionId](#schemaissuingtransactionid)|true|none|
|body|body|[PresentmentRequest](#schemapresentmentrequest)|true|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}
```

<h3 id="simulate-clearing-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Presentment accepted|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Authorization not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="simulate-clearing-responseschema">Response Schema</h3>

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-write )
</aside>

## Simulate refund

<a id="opIdsimulateRefund"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "amount": 2500
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/refunds";
      
      string json = @"{
  ""amount"": 2500
}";
      SimulateRefundRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SimulateRefundRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SimulateRefundRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/simulate/authorizations/{id}/refunds`

Simulate the refund of an existing approved authorization, after it has been cleared.

> Body parameter

```json
{
  "amount": 2500
}
```

<h3 id="simulate-refund-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|[IssuingTransactionId](#schemaissuingtransactionid)|true|none|
|body|body|[SimulateRefundRequest](#schemasimulaterefundrequest)|true|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}
```

<h3 id="simulate-refund-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Refund accepted|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Presentment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="simulate-refund-responseschema">Response Schema</h3>

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-write )
</aside>

## Simulate reversal

<a id="opIdsimulateReversal"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "amount": 2500
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/authorizations/{id}/reversals";
      
      string json = @"{
  ""amount"": 2500
}";
      ReversalRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(ReversalRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(ReversalRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/simulate/authorizations/{id}/reversals`

Simulate the reversal of an existing approved authorization.

> Body parameter

```json
{
  "amount": 2500
}
```

<h3 id="simulate-reversal-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|[IssuingTransactionId](#schemaissuingtransactionid)|true|none|
|body|body|[ReversalRequest](#schemareversalrequest)|true|none|

> Example responses

> 201 Response

```json
{
  "status": "Reversed"
}
```

<h3 id="simulate-reversal-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Reversal processed successfully|[ReversalResponse](#schemareversalresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Authorization not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-write )
</aside>

<h1 id="checkout-com-api-reference-onboarding-simulator">Onboarding Simulator</h1>

Endpoints for driving entity state in sandbox environments. These endpoints are sandbox-only and return 404 in production. Use them to simulate status transitions and requirements-due scenarios when testing your integration.

## Set requirements due

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "fields": [
    "individual.identification.document"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/requirements-due";
      
      string json = @"{
  ""fields"": [
    ""individual.identification.document""
  ]
}";
      SimulatorSetRequirementsDueRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SimulatorSetRequirementsDueRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SimulatorSetRequirementsDueRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /simulate/entities/{entityId}/requirements-due`

**Sandbox only** — not available in Production.

Marks the specified requirement fields as due on an entity. Use this to test how your integration handles the requirements-due state.

> Body parameter

```json
{
  "fields": [
    "individual.identification.document"
  ]
}
```

<h3 id="set-requirements-due-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[SimulatorSetRequirementsDueRequest](#schemasimulatorsetrequirementsduerequest)|true|The requirement fields to mark as due.|
|entityId|path|string|true|The ID of the entity.|

> Example responses

> 200 Response

```json
{
  "entity_id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "previous_status": "Active",
  "current_status": "requirements_due",
  "requirements_due": [
    "individual.identification.document"
  ]
}
```

<h3 id="set-requirements-due-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Requirements due set successfully|[SimulatorSetRequirementsDueResponse](#schemasimulatorsetrequirementsdueresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Unknown or missing fields|[SimulatorErrorResponse](#schemasimulatorerrorresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Dependency error|[SimulatorErrorResponse](#schemasimulatorerrorresponse)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## Run scenario

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/scenarios/{scenarioId}";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /simulate/entities/{entityId}/scenarios/{scenarioId}`

**Sandbox only** — not available in Production.

Executes a pre-defined scenario against an entity, triggering the associated state transition or capability change. Use GET /simulate/scenarios to list available scenario IDs.

<h3 id="run-scenario-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The ID of the entity.|
|scenarioId|path|string|true|The ID of the scenario to run.|

> Example responses

> 200 Response

```json
{
  "entity_id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "scenario_id": "go_active",
  "scenario_name": "Go Active",
  "previous_status": "RequirementsDue",
  "current_status": "Active",
  "requirements_due": [
    "individual.identification.document"
  ]
}
```

<h3 id="run-scenario-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Scenario executed successfully|[SimulatorRunScenarioResponse](#schemasimulatorrunscenarioresponse)|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Scenario execution accepted and in progress|[SimulatorRunScenarioResponse](#schemasimulatorrunscenarioresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity or scenario not found|[SimulatorErrorResponse](#schemasimulatorerrorresponse)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Dependency error|[SimulatorErrorResponse](#schemasimulatorerrorresponse)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## Set entity status

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "status": "active"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/simulate/entities/{entityId}/status";
      
      string json = @"{
  ""status"": ""active""
}";
      SimulatorSetStatusRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SimulatorSetStatusRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SimulatorSetStatusRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /simulate/entities/{entityId}/status`

**Sandbox only** — not available in Production.

Forces the entity to the specified status, bypassing normal onboarding flow. Use this to test how your integration handles different entity states.

> Body parameter

```json
{
  "status": "active"
}
```

<h3 id="set-entity-status-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[SimulatorSetStatusRequest](#schemasimulatorsetstatusrequest)|true|The status to apply to the entity.|
|entityId|path|string|true|The ID of the entity.|

> Example responses

> 200 Response

```json
{
  "entity_id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "previous_status": "Pending",
  "current_status": "Active"
}
```

<h3 id="set-entity-status-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Status updated successfully|[SimulatorSetStatusResponse](#schemasimulatorsetstatusresponse)|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Status transition accepted and in progress|[SimulatorSetStatusResponse](#schemasimulatorsetstatusresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Invalid status value or transition not allowed|[SimulatorErrorResponse](#schemasimulatorerrorresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Dependency error|[SimulatorErrorResponse](#schemasimulatorerrorresponse)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## List available requirements

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/simulate/requirements-due";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /simulate/requirements-due`

**Sandbox only** — not available in Production.

Returns all requirement fields that can be set as due on an entity. Use the field values when calling the [Set requirements due](#tag/Onboarding-Simulator/paths/~1simulate~1entities~1{entityId}~1requirements-due/post) endpoint.

> Example responses

> 200 Response

```json
[
  {
    "field": "individual.identification.document",
    "type": "string"
  }
]
```

<h3 id="list-available-requirements-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Requirements listed successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Simulator not available in this environment. These endpoints are not registered in production.|None|

<h3 id="list-available-requirements-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[SimulatorAvailableRequirement](#schemasimulatoravailablerequirement)]|false|none|none|
|» field|string|false|none|The public path of the requirement field.|
|» type|string|false|none|The data type of the field.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## List scenarios

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/simulate/scenarios \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/simulate/scenarios HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/simulate/scenarios',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/simulate/scenarios',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/simulate/scenarios', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/simulate/scenarios', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/simulate/scenarios");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/simulate/scenarios", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/simulate/scenarios";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /simulate/scenarios`

**Sandbox only** — not available in Production.

Returns all pre-defined scenarios available. Use the scenario IDs when calling the run scenario endpoint.

> Example responses

> 200 Response

```json
[
  {
    "id": "go_active",
    "name": "Go Active",
    "description": "Transitions the entity to active status.",
    "action": "set_status",
    "status": "active",
    "requirements_due": [
      "individual.identification.document"
    ]
  }
]
```

<h3 id="list-scenarios-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Scenarios listed successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Simulator not available in this environment. These endpoints are not registered in production.|None|

<h3 id="list-scenarios-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[SimulatorScenario](#schemasimulatorscenario)]|false|none|none|
|» id|string|false|none|The unique identifier of the scenario.|
|» name|string|false|none|Human-readable name of the scenario.|
|» description|string|false|none|Description of what the scenario does.|
|» action|string|false|none|The action type performed by this scenario.|
|» status|string|false|none|The resulting entity status after the scenario runs. Empty string for non-status actions.|
|» requirements_due|[string]|false|none|Requirement fields applied when the scenario runs, if any.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

<h1 id="checkout-com-api-reference-cardholder-access-tokens">Cardholder access tokens</h1>

Create a cardholder-specific access token for secure data access with our Card Issuing SDK for [Android](https://www.checkout.com/docs/developer-resources/sdks/card-issuing-android-sdk) or [iOS](https://www.checkout.com/docs/developer-resources/sdks/card-issuing-ios-sdk), by exchanging your access key ID and access key secret.

## Request an access token

<a id="opIdrequestCardholderAccessToken"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token HTTP/1.1

Content-Type: application/x-www-form-urlencoded
Accept: application/json

```

```javascript
const inputBody = '{
  "grant_type": "client_credentials",
  "client_id": "ack_clckqmmnyfiupexjew7shh5ahe",
  "client_secret": "Pmg36sDWQ9WxtPR3",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "single_use": true
}';
const headers = {
  'Content-Type':'application/x-www-form-urlencoded',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/x-www-form-urlencoded',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/x-www-form-urlencoded"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/access/connect/token";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/access/connect/token`

OAuth endpoint to exchange your access key ID and access key secret for an access token.

> Body parameter

```yaml
grant_type: client_credentials
client_id: ack_clckqmmnyfiupexjew7shh5ahe
client_secret: Pmg36sDWQ9WxtPR3
cardholder_id: crh_d3ozhf43pcq2xbldn2g45qnb44
single_use: true

```

<h3 id="request-an-access-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|object|false|none|
|» grant_type|body|string|false|none|
|» client_id|body|string|false|Access key ID.|
|» client_secret|body|string|false|Access key secret.|
|» cardholder_id|body|[IssuingCardholderId](#schemaissuingcardholderid)|false|The cardholder's unique identifier.|
|» single_use|body|boolean|false|Specifies if the request is for a single-use token.|

#### Detailed descriptions

**» single_use**: Specifies if the request is for a single-use token.
Single-use tokens are required for sensitive endpoints.

#### Enumerated Values

|Parameter|Value|
|---|---|
|» grant_type|client_credentials|

> Example responses

> 200 Response

```json
{
  "access_token": "2YotnFZFEjr1zCsicMWpAA",
  "token_type": "example",
  "expires_in": 3600,
  "scope": "issuing:card-management-write issuing:card-management-read"
}
```

<h3 id="request-an-access-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Cardholder access token retrieved successfully|Inline|
|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|Not Acceptable|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|Inline|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|

<h3 id="request-an-access-token-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» access_token|string|false|none|none|
|» token_type|string|false|none|none|
|» expires_in|number|false|none|The remaining time the access token is valid for, in seconds.|
|» scope|string|false|none|none|

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» error|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|error|invalid_request|
|error|invalid_client|
|error|invalid_grant|
|error|unauthorized_client|
|error|unsupported_grant_type|
|error|invalid_scope|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth
</aside>

<h1 id="checkout-com-api-reference-cardholders">Cardholders</h1>

Create new cardholders to issue cards to, and manage your existing cardholders.

## Create a cardholder

<a id="opIdcreateCardholder"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cardholders \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cardholders HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "type": "individual",
  "reference": "X-123456-N11",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-15",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cardholders',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cardholders', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cardholders");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders";
      
      string json = @"{
  ""type"": ""individual"",
  ""reference"": ""X-123456-N11"",
  ""entity_id"": ""ent_fa6psq242dcd6fdn5gifcq1491"",
  ""first_name"": ""John"",
  ""middle_name"": ""Fitzgerald"",
  ""last_name"": ""Kennedy"",
  ""email"": ""john.kennedy@myemaildomain.com"",
  ""phone_number"": {
    ""country_code"": ""+1"",
    ""number"": ""415 555 2671""
  },
  ""date_of_birth"": ""1985-05-15"",
  ""billing_address"": {
    ""address_line1"": ""Checkout.com"",
    ""address_line2"": ""90 Tottenham Court Road"",
    ""city"": ""London"",
    ""state"": ""London"",
    ""zip"": ""W1T 4TJ"",
    ""country"": ""GB""
  },
  ""residency_address"": {
    ""address_line1"": ""Checkout.com"",
    ""address_line2"": ""90 Tottenham Court Road"",
    ""city"": ""London"",
    ""state"": ""London"",
    ""zip"": ""W1T 4TJ"",
    ""country"": ""GB""
  }
}";
      add-cardholder-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-cardholder-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-cardholder-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cardholders`

Create a new cardholder that you can <a href="https://www.checkout.com/docs/card-issuing/issue-a-card">issue a card</a> to at a later point.

> Body parameter

```json
{
  "type": "individual",
  "reference": "X-123456-N11",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-15",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}
```

<h3 id="create-a-cardholder-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[add-cardholder-request](#schemaadd-cardholder-request)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "type": "individual",
  "status": "active",
  "reference": "X-123456-N11",
  "created_date": "2019-08-24T14:15:22Z",
  "last_modified_date": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "cards": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="create-a-cardholder-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Cardholder created successfully|[add-cardholder-response](#schemaadd-cardholder-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Get cardholder details

<a id="opIdgetCardholder"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/cardholders/{cardholderId}`

Retrieve the details for a cardholder you created previously.

<h3 id="get-cardholder-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardholderId|path|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "type": "individual",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-28",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "reference": "X-123456-N11",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "account_entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "parent_sub_entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "status": "active",
  "created_date": "2019-09-10T10:11:12Z",
  "last_modified_date": "2019-09-11T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "cards": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-cardholder-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Cardholder retrieved successfully|[get-cardholder-response](#schemaget-cardholder-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Cardholder not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

## Update a cardholder

<a id="opIdupdateCardholder"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "date_of_birth": "1985-05-15",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "email": "john.kennedy@myemaildomain.com",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /issuing/cardholders/{cardholderId}`

Updates the details of an existing cardholder.

> Body parameter

```json
{
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "date_of_birth": "1985-05-15",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "email": "john.kennedy@myemaildomain.com",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}
```

<h3 id="update-a-cardholder-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardholderId|path|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|
|body|body|[update-cardholder-request](#schemaupdate-cardholder-request)|true|none|

> Example responses

> 200 Response

```json
{
  "last_modified_date": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="update-a-cardholder-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Cardholder updated successfully|[update-cardholder-response](#schemaupdate-cardholder-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Cardholder not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Get a cardholder's cards

<a id="opIdgetCardholderCards"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cardholders/{cardholderId}/cards";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/cardholders/{cardholderId}/cards`

Retrieves the cards issued to the specified cardholder.

Card credentials are not returned in the response.
The response is limited to a maximum of 150 cards.

<h3 id="get-a-cardholder's-cards-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardholderId|path|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|
|statuses|query|string|false|The card statuses to filter the results by.|

#### Detailed descriptions

**statuses**: The card statuses to filter the results by.
Cards matching any status in this list are returned. If the list is empty, all cards are returned.
Format - Comma-separated list

> Example responses

> 200 Response

```json
{
  "cards": [
    {
      "id": "crd_fa6psq242dcd6fdn5gifcq1491",
      "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
      "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
      "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
      "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
      "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
      "last_four": "1234",
      "expiry_month": 5,
      "expiry_year": 2025,
      "status": "active",
      "display_name": "JOHN KENNEDY",
      "type": "virtual",
      "billing_currency": "USD",
      "issuing_country": "US",
      "reference": "X-123456-N11",
      "metadata": {
        "udf1": "metadata1",
        "udf2": "metadata2",
        "udf3": "metadata3",
        "udf4": "metadata4",
        "udf5": "metadata5"
      },
      "scheduled_revocation_date": "2027-03-12",
      "revocation_date": "2027-03-12",
      "scheduled_activation_date": "2026-06-01T10:00Z",
      "last_activated_on": "2019-09-10T10:11:12Z",
      "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
      "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
      "scheme": "mastercard",
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
          "actions": [
            "GET"
          ],
          "types": [
            "application/json"
          ]
        },
        "credentials": {
          "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
          "actions": [
            "GET"
          ],
          "types": [
            "application/json"
          ]
        },
        "revoke": {
          "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
          "actions": [
            "POST"
          ],
          "types": [
            "application/json"
          ]
        },
        "controls": {
          "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
          "actions": [
            "GET"
          ],
          "types": [
            "application/json"
          ]
        }
      },
      "is_single_use": false
    }
  ]
}
```

<h3 id="get-a-cardholder's-cards-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Cardholder's cards retrieved successfully|[get-cardholder-cards-response](#schemaget-cardholder-cards-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Cardholder not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

<h1 id="checkout-com-api-reference-cards">Cards</h1>

Issue new cards to your cardholders, and manage cards you've already issued.

## Create a card

<a id="opIdcreateCard"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cards \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cards HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript
const inputBody = '{
  "type": "virtual",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "lifetime": {
    "unit": "Months",
    "value": 6
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cards', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards";
      
      string json = @"{
  ""type"": ""virtual"",
  ""cardholder_id"": ""crh_d3ozhf43pcq2xbldn2g45qnb44"",
  ""lifetime"": {
    ""unit"": ""Months"",
    ""value"": 6
  },
  ""reference"": ""X-123456-N11"",
  ""metadata"": {
    ""udf1"": ""metadata1"",
    ""udf2"": ""metadata2"",
    ""udf3"": ""metadata3"",
    ""udf4"": ""metadata4"",
    ""udf5"": ""metadata5""
  },
  ""scheduled_revocation_date"": ""2027-03-12"",
  ""revocation_date"": ""2027-03-12"",
  ""scheduled_activation_date"": ""2026-06-01T10:00Z"",
  ""card_product_id"": ""pro_7syjig3jq3mezlc3vjrdpfitl4""
}";
      add-card-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-card-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-card-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cards`

Creates a physical or virtual card and issues it to the specified cardholder.

> Body parameter

```json
{
  "type": "virtual",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "lifetime": {
    "unit": "Months",
    "value": 6
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4"
}
```

<h3 id="create-a-card-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying Issuing requests.|
|body|body|[add-card-request](#schemaadd-card-request)|true|none|

> Example responses

> Card created successfully

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "billing_currency": "USD",
  "issuing_country": "US",
  "status": "active",
  "type": "virtual",
  "scheme": "mastercard",
  "created_date": "2019-09-10T10:11:12Z"
}
```

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "billing_currency": "USD",
  "issuing_country": "US",
  "status": "active",
  "type": "physical",
  "scheme": "mastercard",
  "created_date": "2019-09-10T10:11:12Z"
}
```

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}
```

<h3 id="create-a-card-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Card created successfully|[add-card-response](#schemaadd-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Get card details

<a id="opIdgetCard"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/cards/{cardId}`

Retrieves the details for a card you issued previously.

The card's credentials are not returned in the response.

<h3 id="get-card-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|

> Example responses

> Card retrieved successfully

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "type": "virtual",
  "billing_currency": "USD",
  "issuing_country": "US",
  "scheme": "mastercard"
}
```

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "type": "physical",
  "billing_currency": "USD",
  "issuing_country": "US",
  "scheme": "mastercard"
}
```

<h3 id="get-card-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card retrieved successfully|[get-card-response](#schemaget-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

## Update card details

<a id="opIdupdateCard"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "status": "active",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "expiry_month": 5,
  "expiry_year": 2025,
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /issuing/cards/{cardId}`

Update the details of an issued card.

Only the fields for which you provide values will be updated. If you pass `null`, the existing value will be removed.

> Body parameter

```json
{
  "status": "active",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "expiry_month": 5,
  "expiry_year": 2025,
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z"
}
```

<h3 id="update-card-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|body|body|[update-card-request](#schemaupdate-card-request)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "string",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "last_activated_on": "2019-09-10T10:11:12Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="update-card-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card updated successfully|[update-card-response](#schemaupdate-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent.|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Enroll a card in 3DS

<a id="opIdenrollCard"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "security_pair": {
    "question": "Who are you?",
    "answer": "Bond. James Bond."
  },
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cards/{cardId}/3ds-enrollment`

Enrolls a card in <a href="https://www.checkout.com/docs/risk-management/3d-secure">3D Secure</a> (3DS). Additional information is requested from the cardholder through a 3DS challenge when performing a transaction.

Two-factor authentication (2FA) is supported. For maximum security, we recommend using a combination of a one-time password (OTP) sent via SMS, along with a password or question and answer security pair.

> Body parameter

```json
{
  "security_pair": {
    "question": "Who are you?",
    "answer": "Bond. James Bond."
  },
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}
```

<h3 id="enroll-a-card-in-3ds-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|body|body|any|true|none|

> Example responses

> 202 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="enroll-a-card-in-3ds-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|3DS card enrollment completed successfully|[3ds-enrollment-post-response](#schema3ds-enrollment-post-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Update a card's 3DS details

<a id="opIdupdateCardEnrollmentDetails"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "security_pair": {
    "question": "Who are you?",
    "answer": "Bond. James Bond."
  },
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /issuing/cards/{cardId}/3ds-enrollment`

Updates a card's 3DS enrollment details. At least one of the fields is required.

> Body parameter

```json
{
  "security_pair": {
    "question": "Who are you?",
    "answer": "Bond. James Bond."
  },
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}
```

<h3 id="update-a-card's-3ds-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|body|body|any|true|none|

> Example responses

> 202 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="update-a-card's-3ds-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Card 3DS details updated successfully|[3ds-enrollment-patch-response](#schema3ds-enrollment-patch-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Get a card's 3DS enrollment details

<a id="opIdgetCardEnrollmentDetails"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/cards/{cardId}/3ds-enrollment`

Retrieves a card's 3DS enrollment details.

<h3 id="get-a-card's-3ds-enrollment-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|

> Example responses

> 200 Response

```json
{
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "security_question": {
    "question": "****",
    "answer": "****"
  },
  "password": "string",
  "created_date": "2019-09-10T10:11:12Z",
  "last_modified_date": "2019-09-11T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-a-card's-3ds-enrollment-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card 3DS enrollment details retrieved successfully|[3ds-enrollment-get-response](#schema3ds-enrollment-get-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

## Activate a card

<a id="opIdactivateCard"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/activate";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cards/{cardId}/activate`

Activates an `inactive` or `suspended` card so that incoming authorizations can be approved. 

Activating a renewed card will schedule the parent card for revocation the following day, and transfer all configurations to the newly activated card. This includes 3DS enrollment, card controls, control profiles and tokenisation.

<h3 id="activate-a-card-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|

> Example responses

> 200 Response

```json
{
  "last_activated_on": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "suspend": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/suspend",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="activate-a-card-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card activated successfully|[activate-card-response](#schemaactivate-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Get the card credentials

<a id="opIdgetCardCredentials"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/credentials";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/cards/{cardId}/credentials`

Retrieves the credentials for a card you issued previously.

<h3 id="get-the-card-credentials-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|credentials|query|string|false|none|

#### Enumerated Values

|Parameter|Value|
|---|---|
|credentials|number|
|credentials|cvc2|
|credentials|number,cvc2|

> Example responses

> 200 Response

```json
{
  "number": "4242424242424242",
  "cvc2": "604"
}
```

<h3 id="get-the-card-credentials-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card credentials retrieved successfully|[Credentials](#schemacredentials)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

## Renew a card

<a id="opIdrenewCard"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "display_name": "JOHN KENNEDY",
  "shipping_instructions": {
    "shipping_address": {
      "address_line1": "Checkout.com",
      "address_line2": "90 Tottenham Court Road",
      "city": "London",
      "state": "London",
      "zip": "W1T 4TJ",
      "country": "GB"
    },
    "shipping_recipient": "john kennedy",
    "additional_comment": "string"
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/renew";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cards/{cardId}/renew`

Renew an `active`, `inactive`, or `suspended` card. A card cannot be renewed if it is `revoked`, `expired`, or is a single use virtual card. 

The renewed card will have a different, nonconsecutive number (PAN), expiry date, and CVV. 

Any configuration set on the parent card will be copied to the renewed card when the renewed card is activated. This includes 3DS enrollment, card controls, control profiles, and tokenisation.

> Body parameter

```json
{
  "display_name": "JOHN KENNEDY",
  "shipping_instructions": {
    "shipping_address": {
      "address_line1": "Checkout.com",
      "address_line2": "90 Tottenham Court Road",
      "city": "London",
      "state": "London",
      "zip": "W1T 4TJ",
      "country": "GB"
    },
    "shipping_recipient": "john kennedy",
    "additional_comment": "string"
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  }
}
```

<h3 id="renew-a-card-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|body|body|any|true|none|

> Example responses

> 200 Response

```json
{
  "parent_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "status": "inactive",
  "type": "string",
  "id": "crd_zdihd7452165pk5lgywaa52147",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_year": 2025,
  "expiry_month": 5,
  "display_name": "JOHN KENNEDY",
  "reference": "X-123456-N11",
  "created_date": "2021-09-09T19:41:39Z",
  "billing_currency": "USD",
  "issuing_country": "US",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "activate": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/activate",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="renew-a-card-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card renewed successfully|[renew-card-response](#schemarenew-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|Not Acceptable|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Revoke a card

<a id="opIdrevokeCard"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "reason": "reported_lost"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/revoke";
      
      string json = @"{
  ""reason"": ""reported_lost""
}";
      revoke-card-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(revoke-card-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(revoke-card-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cards/{cardId}/revoke`

Revokes an `inactive`, `active`, or `suspended` card to permanently decline all incoming authorizations.

This is a permanent action. Revoked cards cannot be reactivated.

> Body parameter

```json
{
  "reason": "reported_lost"
}
```

<h3 id="revoke-a-card-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|body|body|[revoke-card-request](#schemarevoke-card-request)|false|none|

> Example responses

> 200 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="revoke-a-card-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card revoked successfully|[revoke-card-response](#schemarevoke-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

## Suspend a card

<a id="opIdsuspendCard"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "reason": "suspected_lost"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/suspend";
      
      string json = @"{
  ""reason"": ""suspected_lost""
}";
      suspend-card-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(suspend-card-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(suspend-card-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/cards/{cardId}/suspend`

Suspends an `active` or `inactive` card to temporarily decline all incoming authorizations.

A `suspended` card can be reactivated.

> Body parameter

```json
{
  "reason": "suspected_lost"
}
```

<h3 id="suspend-a-card-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|cardId|path|[IssuingCardId](#schemaissuingcardid)|true|none|
|body|body|[suspend-card-request](#schemasuspend-card-request)|false|none|

> Example responses

> 200 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "activate": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/activate",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="suspend-a-card-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Card suspended successfully|[suspend-card-response](#schemasuspend-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-write )
</aside>

<h1 id="checkout-com-api-reference-control-groups">Control groups</h1>

Group multiple spending controls together and specify how to apply the combined outcome.

## Create a control group

<a id="opIdcreateControlGroup"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "description": "Block grocery shopping except Walmart",
  "fail_if": "all_fail",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "controls": [
    {
      "description": "Block the card being used for groceries",
      "control_type": "mcc_limit",
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "5422"
        ]
      }
    },
    {
      "description": "Allow the card to be used at Walmart",
      "control_type": "mid_limit",
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "1234"
        ]
      }
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups";
      
      string json = @"{
  ""description"": ""Block grocery shopping except Walmart"",
  ""fail_if"": ""all_fail"",
  ""target_id"": ""crd_fa6psq42dcdd6fdn5gifcq1491"",
  ""controls"": [
    {
      ""description"": ""Block the card being used for groceries"",
      ""control_type"": ""mcc_limit"",
      ""mcc_limit"": {
        ""type"": ""block"",
        ""mcc_list"": [
          ""5422""
        ]
      }
    },
    {
      ""description"": ""Allow the card to be used at Walmart"",
      ""control_type"": ""mid_limit"",
      ""mid_limit"": {
        ""type"": ""allow"",
        ""mid_list"": [
          ""1234""
        ]
      }
    }
  ]
}";
      add-control-group-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-control-group-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-control-group-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/controls/control-groups`

Creates a control group and applies it to the specified target.

> Body parameter

```json
{
  "description": "Block grocery shopping except Walmart",
  "fail_if": "all_fail",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "controls": [
    {
      "description": "Block the card being used for groceries",
      "control_type": "mcc_limit",
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "5422"
        ]
      }
    },
    {
      "description": "Allow the card to be used at Walmart",
      "control_type": "mid_limit",
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "1234"
        ]
      }
    }
  ]
}
```

<h3 id="create-a-control-group-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[add-control-group-request](#schemaadd-control-group-request)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "cgr_oemoyd3otivelkhf4zcnimwdva",
  "description": "Block grocery shopping except Walmart",
  "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
  "fail_if": "all_fail",
  "controls": [
    {
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "5422"
        ]
      },
      "description": "Block the card being used for groceries",
      "control_type": "mcc_limit"
    },
    {
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "1234"
        ]
      },
      "description": "Allow the card to be used at Walmart",
      "control_type": "mid_limit"
    }
  ],
  "is_editable": true,
  "created_date": "2023-12-06T14:01:31.7155085Z",
  "last_modified_date": "2023-12-06T14:01:31.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-groups/cgr_oemoyd3otivelkhf4zcnimwdva",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="create-a-control-group-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Control group created successfully|[add-control-group-response](#schemaadd-control-group-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Target not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Get a target's control groups

<a id="opIdgetControlGroupByTarget"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups?target_id=crd_fa6psq42dcdd6fdn5gifcq1491 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups?target_id=crd_fa6psq42dcdd6fdn5gifcq1491 HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups?target_id=crd_fa6psq42dcdd6fdn5gifcq1491',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups',
  params: {
  'target_id' => '[IssuingTargetId](#schemaissuingtargetid)'
}, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups', params={
  'target_id': 'crd_fa6psq42dcdd6fdn5gifcq1491'
}, headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups?target_id=crd_fa6psq42dcdd6fdn5gifcq1491");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/controls/control-groups`

Retrieves a list of control groups applied to the specified target.

<h3 id="get-a-target's-control-groups-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|target_id|query|[IssuingTargetId](#schemaissuingtargetid)|true|none|

> Example responses

> 200 Response

```json
{
  "control_groups": [
    {
      "id": "cgr_oemoyd3otivelkhf4zcnimwdva",
      "description": "Block grocery shopping except Walmart",
      "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
      "fail_if": "all_fail",
      "controls": [
        {
          "mcc_limit": {
            "type": "block",
            "mcc_list": [
              "5422"
            ]
          },
          "description": "Block the card being used for groceries",
          "control_type": "mcc_limit"
        },
        {
          "mid_limit": {
            "type": "allow",
            "mid_list": [
              "1234"
            ]
          },
          "description": "Allow the card to be used at Walmart",
          "control_type": "mid_limit"
        }
      ],
      "is_editable": true,
      "created_date": "2023-12-06T14:01:31.7155085Z",
      "last_modified_date": "2023-12-06T14:01:31.7155085Z"
    },
    {
      "id": "cgr_xvrszbgkaifuflnslzkt2uimkm",
      "description": "Allow restaurants except McDonalds",
      "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
      "fail_if": "all_fail",
      "controls": [
        {
          "mcc_limit": {
            "type": "allow",
            "mcc_list": [
              "6789"
            ]
          },
          "description": "Allow the card being used for restaurants",
          "control_type": "mcc_limit"
        },
        {
          "mid_limit": {
            "type": "block",
            "mid_list": [
              "9876"
            ]
          },
          "description": "Block the card to be used at McDonalds",
          "control_type": "mid_limit"
        }
      ],
      "is_editable": true,
      "created_date": "2023-12-06T14:01:31.7155085Z",
      "last_modified_date": "2023-12-06T14:01:31.7155085Z"
    }
  ]
}
```

<h3 id="get-a-target's-control-groups-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Target's control groups retrieved successfully|[get-control-groups-array-response](#schemaget-control-groups-array-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Target not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-read )
</aside>

## Get control group details

<a id="opIdgetControlGroup"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/controls/control-groups/{controlGroupId}`

Retrieves the details of a control group you created previously.

<h3 id="get-control-group-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlGroupId|path|[IssuingControlGroupId](#schemaissuingcontrolgroupid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "cgr_oemoyd3otivelkhf4zcnimwdva",
  "description": "Block grocery shopping except Walmart",
  "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
  "fail_if": "all_fail",
  "controls": [
    {
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "5422"
        ]
      },
      "description": "Block the card being used for groceries",
      "control_type": "mcc_limit"
    },
    {
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "1234"
        ]
      },
      "description": "Allow the card to be used at Walmart",
      "control_type": "mid_limit"
    }
  ],
  "is_editable": true,
  "created_date": "2023-12-06T14:01:31.7155085Z",
  "last_modified_date": "2023-12-06T14:01:31.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-groups/cgr_oemoyd3otivelkhf4zcnimwdva",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-control-group-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control group retrieved successfully|[add-control-group-response](#schemaadd-control-group-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control group not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-read )
</aside>

## Remove a control group

<a id="opIddeleteControlGroup"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-groups/{controlGroupId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /issuing/controls/control-groups/{controlGroupId}`

Removes the control group and all the controls it contains.

If you want to reapply an equivalent control group to the card, you'll need to create a new control group.

<h3 id="remove-a-control-group-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlGroupId|path|[IssuingControlGroupId](#schemaissuingcontrolgroupid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "cgr_oemoyd3otivelkhf4zcnimwdva"
}
```

<h3 id="remove-a-control-group-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control group deleted successfully|[remove-control-group-response](#schemaremove-control-group-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control group not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

<h1 id="checkout-com-api-reference-control-profiles">Control profiles</h1>

Creates a control profile and applies it to the specified target.

## Create a control profile

<a id="opIdcreateControlProfile"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "name": "Low Risk MCC Profile"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles";
      
      string json = @"{
  ""name"": ""Low Risk MCC Profile""
}";
      add-control-profile-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-control-profile-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-control-profile-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/controls/control-profiles`

Creates a control profile.

> Body parameter

```json
{
  "name": "Low Risk MCC Profile"
}
```

<h3 id="create-a-control-profile-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[add-control-profile-request](#schemaadd-control-profile-request)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
  "name": "Low Risk MCC Profile",
  "created_date": "2024-03-12T18:13:45.7155085Z",
  "last_modified_date": "2024-03-12T18:13:45.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="create-a-control-profile-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Control profile created successfully|[add-update-control-profile-response](#schemaadd-update-control-profile-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Get all control profiles

<a id="opIdgetControlProfilesByTarget"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/controls/control-profiles`

Retrieves a list of control profiles for the currently authenticated client, or for a specific card if a card ID is provided.

<h3 id="get-all-control-profiles-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|target_id|query|[IssuingCardId](#schemaissuingcardid)|false|none|

> Example responses

> 200 Response

```json
{
  "control_profiles": [
    {
      "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "name": "Low Risk MCC Profile",
      "created_date": "2024-03-12T18:13:45.7155085Z",
      "last_modified_date": "2024-03-13T15:44:56.7155085Z"
    },
    {
      "id": "cpr_53mkhdc4jjlu5jcryx76bjbrgm",
      "name": "Medium Risk MCC Profile",
      "created_date": "2024-05-05T10:43:13.7155085Z",
      "last_modified_date": "2024-06-17T06:32:18.7155085Z"
    },
    {
      "id": "cpr_j4ma3rclvgcu3pn5tsdgb3e3a4",
      "name": "High Risk MCC Profile",
      "created_date": "2024-02-29T12:55:55.7155085Z",
      "last_modified_date": "2024-03-01T10:12:12.7155085Z"
    }
  ]
}
```

<h3 id="get-all-control-profiles-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control profiles retrieved successfully|[get-control-profiles-client-response](#schemaget-control-profiles-client-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Client not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-read )
</aside>

## Get control profile details

<a id="opIdgetControlProfile"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/controls/control-profiles/{controlProfileId}`

Retrieves the details of an existing control profile.

<h3 id="get-control-profile-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlProfileId|path|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
  "name": "Low Risk MCC Profile",
  "created_date": "2024-03-12T18:13:45.7155085Z",
  "last_modified_date": "2024-03-12T18:13:45.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-control-profile-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control profile retrieved successfully|[add-update-control-profile-response](#schemaadd-update-control-profile-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control profile not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-read )
</aside>

## Update a control profile

<a id="opIdupdateControlProfile"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "name": "Low Risk MCC Profile"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /issuing/controls/control-profiles/{controlProfileId}`

Update the control profile

> Body parameter

```json
{
  "name": "Low Risk MCC Profile"
}
```

<h3 id="update-a-control-profile-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlProfileId|path|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|
|body|body|[update-control-profile-request](#schemaupdate-control-profile-request)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
  "name": "Low Risk MCC Profile",
  "created_date": "2024-03-12T18:13:45.7155085Z",
  "last_modified_date": "2024-03-12T18:13:45.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="update-a-control-profile-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control profile updated successfully|[add-update-control-profile-response](#schemaadd-update-control-profile-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control profile not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Remove a control profile

<a id="opIddeleteControlProfile"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId} \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId} HTTP/1.1

```

```javascript

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /issuing/controls/control-profiles/{controlProfileId}`

Removes the control profile. A control profile cannot be removed if it is used by a control.

<h3 id="remove-a-control-profile-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlProfileId|path|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|

> Example responses

<h3 id="remove-a-control-profile-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control profile deleted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control profile not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="remove-a-control-profile-responseschema">Response Schema</h3>

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Add target to control profile

<a id="opIdaddTargetToControlProfile"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/controls/control-profiles/{controlProfileId}/add/{targetId}`

Adds a target to an existing control profile.

<h3 id="add-target-to-control-profile-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlProfileId|path|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|
|targetId|path|[IssuingTargetIdToAddToControlProfile](#schemaissuingtargetidtoaddtocontrolprofile)|true|none|

> Example responses

> 200 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="add-target-to-control-profile-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Target added successfully|[add-control-profile-target-response](#schemaadd-control-profile-target-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control profile not found|[IssuingNotFoundError](#schemaissuingnotfounderror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Remove target from control profile

<a id="opIdremoveTargetFromControlProfile"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}`

Removes a target from an existing control profile.

<h3 id="remove-target-from-control-profile-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlProfileId|path|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|
|targetId|path|[IssuingTargetIdToRemoveFromControlProfile](#schemaissuingtargetidtoremovefromcontrolprofile)|true|none|

> Example responses

> 200 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="remove-target-from-control-profile-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Target removed successfully|[remove-control-profile-target-response](#schemaremove-control-profile-target-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control profile not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

<h1 id="checkout-com-api-reference-controls">Controls</h1>

Set spending controls to limit how much can be spent over a given period of time.

## Create a control

<a id="opIdcreateControl"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/controls \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/controls HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript
const inputBody = '{
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/controls',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/controls', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/controls', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/controls", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls";
      
      string json = @"{
  ""description"": ""Maximum spend of 500€ per week for restaurants"",
  ""control_type"": ""velocity_limit"",
  ""target_id"": ""crd_fa6psq42dcdd6fdn5gifcq1491"",
  ""velocity_limit"": {
    ""amount_limit"": 50000,
    ""velocity_window"": {
      ""type"": ""weekly""
    },
    ""mcc_list"": [
      ""string""
    ],
    ""mid_list"": [
      ""1234567890""
    ]
  }
}";
      add-control-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-control-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-control-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/controls`

Creates a control and applies it to the specified target.

> Body parameter

```json
{
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}
```

<h3 id="create-a-control-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying Issuing requests.|
|body|body|[add-control-request](#schemaadd-control-request)|true|none|

> Example responses

> Control created successfully

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "4121",
      "4582"
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_gp7vkmxayztufjz6top5bjcdra",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_gp7vkmxayztufjz6top5bjcdra",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_gp7vkmxayztufjz6top5bjcdra",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}
```

<h3 id="create-a-control-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Control created successfully|[add-control-response](#schemaadd-control-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Target not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Get controls by target

<a id="opIdgetControlByTarget"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491 HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/controls',
  params: {
  'target_id' => '[IssuingTargetId](#schemaissuingtargetid)'
}, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/controls', params={
  'target_id': 'crd_fa6psq42dcdd6fdn5gifcq1491'
}, headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/controls', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/controls", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/controls`

Retrieves a list of spending controls applied to the specified target.

<h3 id="get-controls-by-target-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|target_id|query|[IssuingTargetId](#schemaissuingtargetid)|true|none|

> Example responses

> 200 Response

```json
{
  "controls": [
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Maximum spend of 500€ per week for restaurants",
      "control_type": "velocity_limit",
      "is_editable": true,
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "velocity_limit": {
        "amount_remaining": 45000,
        "amount_limit": 50000,
        "velocity_window": {
          "type": "weekly"
        },
        "mcc_list": [
          "4121",
          "4582"
        ]
      }
    },
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Allow the card to be used only in restaurants and supermarkets",
      "control_type": "mcc_limit",
      "is_editable": true,
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "mcc_limit": {
        "type": "allow",
        "mcc_list": [
          "5932",
          "5411"
        ]
      }
    },
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Allow the card to be used only in AZ Pizza",
      "control_type": "mid_limit",
      "is_editable": true,
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "593278",
          "541114"
        ]
      }
    }
  ]
}
```

<h3 id="get-controls-by-target-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Target's controls retrieved successfully|[get-controls-array-response](#schemaget-controls-array-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Target not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-read )
</aside>

## Get control details

<a id="opIdgetControl"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/controls/{controlId}`

Retrieves the details of an existing control.

<h3 id="get-control-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlId|path|[IssuingControlId](#schemaissuingcontrolid)|true|none|
|cardId|query|[IssuingCardId](#schemaissuingcardid)|false|The unique identifier for the card you want to get the remaining cascading velocity control for.|

> Example responses

> Control retrieved successfully

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "velocity_limit": {
    "amount_remaining": 45000,
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "4121",
      "4582"
    ]
  }
}
```

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}
```

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}
```

<h3 id="get-control-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control retrieved successfully|[get-control-response](#schemaget-control-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-read )
</aside>

## Update a control

<a id="opIdupdateControl"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}";

      
      
      var result = await PutAsync(id, null, url);
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /issuing/controls/{controlId}`

Updates an existing control.

> Body parameter

```json
{
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}
```

<h3 id="update-a-control-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlId|path|[IssuingControlId](#schemaissuingcontrolid)|true|none|
|body|body|any|true|none|

> Example responses

> Control updated successfully

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "velocity_limit": {
    "amount_remaining": 45000,
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "4121",
      "4582"
    ]
  }
}
```

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}
```

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}
```

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}
```

<h3 id="update-a-control-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control updated successfully|[update-control-response](#schemaupdate-control-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

## Remove a control

<a id="opIddeleteControl"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/controls/{controlId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /issuing/controls/{controlId}`

Removes an existing control from the target it was applied to.

If you want to reapply an equivalent control to the target, you must create a new control.

<h3 id="remove-a-control-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|controlId|path|[IssuingControlId](#schemaissuingcontrolid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra"
}
```

<h3 id="remove-a-control-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Control deleted successfully|[remove-control-response](#schemaremove-control-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Control not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:controls-write )
</aside>

<h1 id="checkout-com-api-reference-disputes">Disputes</h1>

Keep track of and act on your open disputes (also known as chargebacks) to submit the best possible response.

## Get disputes

<a id="opIdgetDisputes"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Disputes;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

DisputesQueryFilter request = new DisputesQueryFilter
{
    Limit = 250,
    To = DateTime.Now,
};

try
{
    DisputesQueryResponse response = await api.DisputesClient().Query(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/disputes"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

query := disputes.QueryFilter{
	Limit:            10,
	Skip:             5,
	From:             time.Parse("2006-01-02T15:04:05Z", time.Now().AddDate(0, -1, 0).Format("2006-01-02T15:04:05Z")),
	To:               time.Parse("2006-01-02T15:04:05Z", time.Now().Format("2006-01-02T15:04:05Z")),
	Statuses:         strings.Join([]string{disputes.EvidenceRequired, disputes.Accepted}[:], ","),
	PaymentId:        "payment_id",
	PaymentReference: "payment_reference",
	PaymentArn:       "payment_arn",
}

response, err := api.Disputes.Query(query)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.disputes.DisputeStatus;
import com.checkout.disputes.DisputesQueryFilter;
import com.checkout.disputes.DisputesQueryResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

DisputesQueryFilter query = DisputesQueryFilter.builder()
    .paymentId("payment_id")
    .from(LocalDateTime.now().minusMonths(2).toInstant(ZoneOffset.UTC))
    .to(Instant.now())
    .paymentArn("payment_arn")
    .paymentReference("payment_reference")
    .statuses(String.join(",", DisputeStatus.EVIDENCE_UNDER_REVIEW.getStatus(), DisputeStatus.ARBITRATION_WON.getStatus()))
    .limit(10)
    .skip(5)
    .build();

try {
    DisputesQueryResponse response = api.disputesClient().query(query).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const disputes = await cko.disputes.get({
		limit: 5,
		id: 'dsp_bc94ebda8d275i461229',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Disputes\DisputesQueryFilter;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$query = new DisputesQueryFilter();
$query->payment_id = "payment_id";
$query->payment_arn = "payment_arn";
$query->payment_reference = "payment_reference";
$query->statuses = "comma,separated,list,statuses";
$query->limit = 10;
$query->skip = 5;
$query->to = new DateTime(); // UTC, now

$from = new DateTime();
$from->setTimezone(new DateTimeZone("America/Mexico_City"));
$from->sub(new DateInterval("P1M"));
$query->from = $from;

try {
    $response = $api->getDisputesClient()->query($query);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.disputes.disputes import DisputesQueryFilter
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) 
    .build()
)

query = DisputesQueryFilter()
now = datetime.now(timezone.utc)
query.from_ = now - relativedelta(months=6)
query.to = now
query.payment_arn = 'payment_arn'
query.payment_reference = 'payment_reference'
query.limit = 10
query.skip = 5

try:
    response = api.disputes.query(query)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /disputes`

Returns a list of all disputes against your business. The results will be returned in reverse chronological order, showing the last modified dispute (for example, where you've recently added a piece of evidence) first. You can use the optional parameters below to skip or limit results.

<h3 id="get-disputes-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|limit|query|integer|false|The numbers of results to return|
|skip|query|integer|false|The number of results to skip|
|from|query|string(date-time)|false|The date and time from which to filter disputes, based on the dispute's `last_update` field|
|to|query|string(date-time)|false|The date and time until which to filter disputes, based on the dispute's `last_update` field|
|id|query|string|false|The unique identifier of the dispute|
|entity_ids|query|string|false|One or more comma-separated client entities. This works like a logical *OR* operator|
|sub_entity_ids|query|string|false|One or more comma-separated sub-entities. This works like a logical *OR* operator|
|processing_channel_ids|query|string|false|One or more comma-separated processing channels. This works like a logical *OR* operator.|
|segment_ids|query|string|false|One or more comma-separated segments. This works like a logical *OR* operator.|
|statuses|query|string|false|One or more comma-separated statuses. This works like a logical *OR* operator|
|payment_id|query|string|false|The unique identifier of the payment|
|payment_reference|query|string|false|An optional reference (such as an order ID) that you can use later to identify the payment. Previously known as `TrackId`|
|payment_arn|query|string|false|The acquirer reference number (ARN) that you can use to query the issuing bank|
|payment_mcc|query|string|false|The merchant category code (MCC) of the payment (ISO 18245)|
|this_channel_only|query|boolean|false|If `true`, only returns disputes of the specific channel that the secret key is associated with. Otherwise, returns all disputes for that business|

> Example responses

> 200 Response

```json
{
  "limit": 10,
  "skip": 10,
  "from": "2018-08-12T01:15:56Z",
  "to": "2018-08-13T11:09:01Z",
  "id": "dsp_rbhwd2qrg13uhrp2newfcd",
  "entity_ids": "ent_wxglze3wwywujg4nna5fb7ldli,ent_vkb5zcy64zoe3cwfmaqvqyqyku",
  "sub_entity_ids": "ent_uzm3uxtssvmuxnyrfdffcyjxeu,ent_hy5wtzwzeuwefmsnjtdhw4scfi",
  "processing_channel_ids": "pc_uzm3uxtssvmuxnyrfdffcyjxeu,pc_hy5wtzwzeuwefmsnjtdhw4scfi",
  "segment_ids": "string",
  "statuses": "evidence_required,evidence_under_review",
  "payment_id": "pay_lzmo6p0i3612judj754w1ngtil",
  "payment_reference": "th7zxa1kcnqmes8",
  "payment_arn": "74548998294293193445538",
  "payment_mcc": "5021",
  "this_channel_only": true,
  "total_count": 1,
  "data": [
    {
      "id": "dsp_rbhwd2qrg13uhrp2newfafreds",
      "entity_id": "ent_wxglze3wwywujg4nna5fb7ldli",
      "sub_entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
      "processing_channel": "pc_uzm3uxtssvmuxnyrfdffcyjxeu",
      "segment_id": "string",
      "category": "fraudulent",
      "status": "evidence_required",
      "amount": 999,
      "currency": "GBP",
      "reason_code": "10.4",
      "payment_id": "pay_88cb4e671m1da22e9bbbyx",
      "payment_action_id": "act_mbabizu24mvu3mela5njyhpit4",
      "payment_reference": "th7zxa1kcnqmes8",
      "payment_arn": "74548998294293193445538",
      "payment_mcc": "5021",
      "payment_method": "VISA",
      "evidence_required_by": "2018-08-22T00:00:00Z",
      "received_on": "2018-08-01T01:15:56Z",
      "last_update": "2018-08-12T04:15:56Z",
      "resolved_reason": "already_refunded",
      "is_ce_candidate": true,
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
        }
      }
    }
  ]
}
```

<h3 id="get-disputes-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Disputes retrieved successfully|[DisputePaged](#schemadisputepaged)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable paging|[PagingError](#schemapagingerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:view ), ApiSecretKey
</aside>

## Get dispute details

<a id="opIdgetDisputeDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Disputes;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    DisputeDetailsResponse response = await api.DisputesClient().GetDisputeDetails("disputes_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.GetDisputeDetails("dispute_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.disputes.DisputeDetailsResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    DisputeDetailsResponse response = api.disputesClient().getDisputeDetails("dispute_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const disputeDetails = await cko.disputes.getDetails('dsp_bc94ebda8d275i461229');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getDisputesClient()->getDisputeDetails("dispute_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) 
    .build()
)

try:
    response = api.disputes.get_dispute_details('dispute_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /disputes/{dispute_id}`

Returns all the details of a dispute using the dispute identifier.

<h3 id="get-dispute-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier|

> Example responses

> 200 Response

```json
{
  "id": "dsp_rbhwd2qrg13uhrp2newfarfder",
  "entity_id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "sub_entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
  "reference": "dispute-09",
  "category": "fraudulent",
  "amount": 999,
  "currency": "GBP",
  "reason_code": "10.4",
  "status": "evidence_required",
  "resolved_reason": "already_refunded",
  "relevant_evidence": [
    [
      "proof_of_delivery_or_service",
      "compelling_evidence"
    ]
  ],
  "evidence_required_by": "2018-08-21T00:00:00Z",
  "received_on": "2018-08-01T04:00:10Z",
  "last_update": "2018-08-04T10:53:13Z",
  "is_ce_candidate": true,
  "payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "action_id": "act_mbabizu24mvu3mela5njyhpit4",
    "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
    "amount": 999,
    "currency": "GBP",
    "reference": "string",
    "method": "Visa",
    "acquirer_reference_number": "AA246873253573571073808",
    "mcc": "5021",
    "3ds": {
      "version": "2.1.0",
      "enrolled": "Y"
    },
    "eci": "06",
    "has_refund": true,
    "processed_on": "2018-08-01T08:18:10Z"
  },
  "evidence_list": [
    {
      "file": "string",
      "text": "string",
      "type": "proof_of_delivery_or_service",
      "dispute_id": "string"
    }
  ],
  "evidence_bundle": [
    {
      "dispute_id": "dsp_rbhwd2qrg13uhrp2newfab",
      "filename": "string",
      "file_size": 0,
      "is_file_oversized": true,
      "created_at": "2019-08-24T14:15:22Z",
      "modified_at": "2019-08-24T14:15:22Z"
    }
  ],
  "segment_id": "string",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
    },
    "evidence": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf/evidence"
    }
  }
}
```

<h3 id="get-dispute-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Dispute retrieved successfully|[Dispute](#schemadispute)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:view ), ApiSecretKey
</aside>

## Accept dispute

<a id="opIdacceptDispute"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    EmptyResponse response = await api.DisputesClient().Accept("disputes_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
"github.com/checkout/checkout-sdk-go"
"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.Accept("dispute_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    EmptyResponse response = api.disputesClient().accept("dispute_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}

```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const accept = await cko.disputes.accept('dsp_bc94ebda8d275i461229');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getDisputesClient()->accept("dispute_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_ACCEPT]) 
    .build()
)

try:
    response = api.disputes.accept('dispute_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization

```

`POST /disputes/{dispute_id}/accept`

If a dispute is legitimate, you can choose to accept it. This will close it for you and remove it from your list of open disputes. There are no further financial implications.

<h3 id="accept-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier|

<h3 id="accept-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Dispute accepted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:accept ), ApiSecretKey
</aside>

## Provide dispute evidence

<a id="opIdprovideDisputeEvidence"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Disputes;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

DisputeEvidenceRequest request = new DisputeEvidenceRequest
{
    ProofOfDeliveryOrServiceFile = "file_xxxxxx",
    ProofOfDeliveryOrServiceText = "proof of delivery or service text",
    InvoiceOrReceiptFile = "file_xxxxxx",
    InvoiceOrReceiptText = "Copy of the invoice",
    CustomerCommunicationFile = "file_xxxxxx",
    CustomerCommunicationText = "Copy of an email exchange with the cardholder",
    AdditionalEvidenceFile = "file_xxxxxx",
    AdditionalEvidenceText = "Scanned document",
    InvoiceShowingDistinctTransactionsFile = "file_xxxxxx",
    InvoiceShowingDistinctTransactionsText = "Copy of invoice #1244 showing two transactions",
    RefundOrCancellationPolicyFile = "file_xxxxxx",
    RefundOrCancellationPolicyText = "Copy of the refund policy",
    RecurringTransactionAgreementFile = "file_xxxxxx",
    RecurringTransactionAgreementText = "Copy of the recurring transaction agreement",
    ProofOfDeliveryOrServiceDateFile = "file_xxxxxx",
    ProofOfDeliveryOrServiceDateText = "Copy of the customer receipt showing the merchandise was delivered"
};

try
{
    EmptyResponse response = await api.DisputesClient().PutEvidence("disputes_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/disputes"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := disputes.Evidence{
	ProofOfDeliveryOrServiceFile:           "file_id",
	ProofOfDeliveryOrServiceText:           "proof of delivery or service text",
	InvoiceOrReceiptFile:                   "file_id",
	InvoiceOrReceiptText:                   "proof of receipt text",
	InvoiceShowingDistinctTransactionsFile: "file_id",
	InvoiceShowingDistinctTransactionsText: "invoice showing distinct transactions text",
	CustomerCommunicationFile:              "file_id",
	CustomerCommunicationText:              "customer communication text",
	RefundOrCancellationPolicyFile:         "file_id",
	RefundOrCancellationPolicyText:         "refund or cancellation policy text",
	RecurringTransactionAgreementFile:      "file_id",
	RecurringTransactionAgreementText:      "recurring transaction agreement text",
	AdditionalEvidenceFile:                 "file_id",
	AdditionalEvidenceText:                 "additional evidence text",
	ProofOfDeliveryOrServiceDateFile:       "file_id",
	ProofOfDeliveryOrServiceDateText:       "proof of delivery or service date text",
}

response, err := api.Disputes.PutEvidence("dispute_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.disputes.DisputeEvidenceRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

DisputeEvidenceRequest evidenceRequest = DisputeEvidenceRequest.builder()
    .proofOfDeliveryOrServiceFile("file_id")
    .proofOfDeliveryOrServiceText("proof of delivery or service text")
    .invoiceOrReceiptFile("file_id")
    .invoiceOrReceiptText("Copy of the invoice")
    .invoiceShowingDistinctTransactionsFile("file_id")
    .invoiceShowingDistinctTransactionsText("Copy of invoice #1244 showing two transactions")
    .customerCommunicationFile("file_id")
    .customerCommunicationText("Copy of an email exchange with the cardholder")
    .refundOrCancellationPolicyFile("file_id")
    .refundOrCancellationPolicyText("Copy of the refund policy")
    .recurringTransactionAgreementFile("file_id")
    .recurringTransactionAgreementText("Copy of the recurring transaction agreement")
    .additionalEvidenceFile("file_id")
    .additionalEvidenceText("Scanned document")
    .proofOfDeliveryOrServiceDateFile("file_id")
    .proofOfDeliveryOrServiceDateText("Copy of the customer receipt showing the merchandise was delivered on 2018-12-20")
    .build();

try {
    EmptyResponse response = api.disputesClient().putEvidence("dispute_id", evidenceRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const evidence = await cko.disputes.provideEvidence('dsp_bc94ebda8d275i461229', {
		proof_of_delivery_or_service_text: 'http://checkout.com/document.pdf',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Disputes\DisputeEvidenceRequest;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new DisputeEvidenceRequest();
$request->proof_of_delivery_or_service_file = "file_id";
$request->proof_of_delivery_or_service_text = "proof of delivery or service text";
$request->invoice_or_receipt_file = "file_id";
$request->invoice_or_receipt_text = "Copy of the invoice";
$request->customer_communication_file = "file_id";
$request->customer_communication_text = "Copy of an email exchange with the cardholder";
$request->additional_evidence_file = "file_id";
$request->additional_evidence_text = "Scanned document";

try {
    $api->getDisputesClient()->putEvidence("dispute_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.disputes.disputes import DisputeEvidenceRequest
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_PROVIDE_EVIDENCE]) 
    .build()
)

evidence_request = DisputeEvidenceRequest()
evidence_request.proof_of_delivery_or_service_file = 'proof_of_delivery_or_service_file'
evidence_request.proof_of_delivery_or_service_text = 'proof of delivery or service text'
evidence_request.invoice_or_receipt_file = 'invoice_or_receipt_file'
evidence_request.invoice_or_receipt_text = 'invoice_or_receipt_text'
evidence_request.customer_communication_file = 'customer_communication_file'
evidence_request.customer_communication_text = 'customer_communication_text'
evidence_request.additional_evidence_file = 'additional_evidence_file'
evidence_request.additional_evidence_text = 'additional_evidence_text'

try:
    response = api.disputes.put_evidence('dispute_id', evidence_request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PUT /disputes/{dispute_id}/evidence`

Adds supporting evidence to a dispute. Before using this endpoint, you first need to [upload your files](#tag/Disputes/paths/~1files/post) using the file uploader. You will receive a file id (prefixed by `file_`) which you can then use in your request. Note that this only attaches the evidence to the dispute, it does not send it to us. Once ready, you will need to submit it. **You must provide at least one evidence type in the body of your request.**

> Body parameter

```json
{
  "proof_of_delivery_or_service_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_text": "Description of evidence available at: http://checkout.com/evidenceDocument.pdf",
  "proof_of_delivery_or_service_date_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_date_text": "Copy of the customer receipt showing the merchandise was delivered on 2018-12-20",
  "invoice_or_receipt_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_or_receipt_text": "Copy of the invoice",
  "invoice_showing_distinct_transactions_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_showing_distinct_transactions_text": "Copy of invoice #1244 showing two transactions",
  "customer_communication_file": "file_jmbfgkjromvcrn9t4qu4",
  "customer_communication_text": "Copy of an email exchange with the cardholder",
  "refund_or_cancellation_policy_file": "file_jmbfgkjromvcrn9t4qu4",
  "refund_or_cancellation_policy_text": "Copy of the refund policy",
  "recurring_transaction_agreement_file": "file_jmbfgkjromvcrn9t4qu4",
  "recurring_transaction_agreement_text": "Copy of the recurring transaction agreement",
  "additional_evidence_file": "file_jmbfgkjromvcrn9t4qu4",
  "additional_evidence_text": "Scanned document",
  "arbitration_no_review_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_no_review_text": "Evidence for arbitration",
  "arbitration_review_required_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_review_required_text": "Evidence for arbitration",
  "compelling_evidence": {
    "merchandise_or_service": "Merchandise",
    "merchandise_or_service_desc": "Subscription payment",
    "merchandise_or_service_provided_date": "2024-07-25T11:23:06Z",
    "shipping_delivery_status": "shipped",
    "tracking_information": "129481229312",
    "user_id": "user@cko.com",
    "ip_address": "192.168.1.150",
    "device_id": "device_123_x_1220",
    "shipping_address": {
      "address": "string",
      "address2": "string",
      "city": "string",
      "state_region": "st",
      "postal_code": "string",
      "country": "826"
    },
    "historical_transactions": [
      {
        "historical_arn": "stringstringstringstri",
        "merchandise_or_service_desc": "string"
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf12/evidence"
    },
    "parent": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf12"
    }
  }
}
```

<h3 id="provide-dispute-evidence-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier.|
|body|body|[ProvideEvidenceRequest](#schemaprovideevidencerequest)|false|none|

> Example responses

> 422 Response

```json
{
  "request_id": "string",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}
```

<h3 id="provide-dispute-evidence-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Dispute evidence provided successfully|None|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Unprocessable|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity|Inline|

<h3 id="provide-dispute-evidence-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|The request identifier.|
|» error_type|string|false|none|The error type.|
|» error_codes|[string]|false|none|The error codes returned from the validation.<br>  * `invoice_or_receipt_file_id_invalid`<br>  * `invoice_or_receipt_text_invalid`<br>  * `invoice_showing_distinct_transactions_file_id_invalid`<br>  * `invoice_showing_distinct_transactions_text_invalid`<br>  * `customer_communication_file_id_invalid`<br>  * `customer_communication_text_invalid`<br>  * `refund_or_cancellation_policy_file_id_invalid`<br>  * `refund_or_cancellation_policy_text_invalid`<br>  * `recurring_transaction_agreement_file_id_invalid`<br>  * `proof_of_delivery_or_service_date_file_id_invalid`<br>  * `proof_of_delivery_or_service_date_text_invalid`<br>  * `additional_evidence_file_id_invalid`<br>  * `additional_evidence_text_invalid`<br>  * `proof_of_delivery_or_service_text_invalid`<br>  * `proof_of_delivery_or_service_text_invalid`<br>  * `dispute_not_found`<br>  * `should_be_merchandise_or_service`<br>  * `should_be_merchandise_or_service_required`<br>  * `merchandise_or_service_desc_required`<br>  * `merchandise_or_service_desc_invalid`<br>  * `delivery_status_invalid`<br>  * `tracking_information_required`<br>  * `tracking_information_invalid`<br>  * `historical_arn_required`<br>  * `historical_arn_invalid`<br>  * `historical_transaction_date_invalid`<br>  * `historical_transaction_address_required`<br>  * `historical_transaction_address_invalid`<br>  * `historical_transaction_city_required`<br>  * `historical_transaction_city_invalid`<br>  * `historical_transaction_state_region_required`<br>  * `historical_transaction_state_region_invalid_length_2`<br>  * `historical_transaction_postalcode_required`<br>  * `historical_transaction_postalcode_invalid`<br>  * `historical_transaction_country_required`<br>  * `historical_transaction_country_invalid`<br>  * `historical_transaction_country_should_be_only_numbers`<br>  * `not_valid_compelling_evidence_candidate`<br>  * `ip_address_and_device_id_is_required`<br>  * `ip_address_is_invalid`<br>  * `device_id_minimum_15_length`<br>  * `two_historical_transactions_required`<br>  * `two_core_properties_in_historical_transactions_required`<br>  * `historical_transactions_should_be_different`<br>  * `merchandise_or_service_provided_date_required`|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:provide-evidence ), ApiSecretKey
</aside>

## Get dispute evidence

<a id="opIdgetDisputeEvidence"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Disputes;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    DisputeEvidenceResponse response = await api.DisputesClient().GetEvidence("disputes_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.GetEvidence("dispute_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.disputes.DisputeEvidenceResponse;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    DisputeEvidenceResponse response = api.disputesClient().getEvidence("dispute_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const getEvidence = await cko.disputes.getEvidence('dsp_bc94ebda8d275i461229');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getDisputesClient()->getEvidence("dispute_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) 
    .build()
)

try:
    response = api.disputes.get_evidence('dispute_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /disputes/{dispute_id}/evidence`

Retrieves a list of the evidence submitted in response to a specific dispute.

<h3 id="get-dispute-evidence-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier.|

> Example responses

> 200 Response

```json
{
  "proof_of_delivery_or_service_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_text": "Description of evidence available at: http://checkout.com/evidenceDocument.pdf",
  "proof_of_delivery_or_service_date_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_date_text": "Copy of the customer receipt showing the merchandise was delivered on 2018-12-20",
  "invoice_or_receipt_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_or_receipt_text": "Copy of the invoice",
  "invoice_showing_distinct_transactions_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_showing_distinct_transactions_text": "Copy of invoice #1244 showing two transactions",
  "customer_communication_file": "file_jmbfgkjromvcrn9t4qu4",
  "customer_communication_text": "Copy of an email exchange with the cardholder",
  "refund_or_cancellation_policy_file": "file_jmbfgkjromvcrn9t4qu4",
  "refund_or_cancellation_policy_text": "Copy of the refund policy",
  "recurring_transaction_agreement_file": "file_jmbfgkjromvcrn9t4qu4",
  "recurring_transaction_agreement_text": "Copy of the recurring transaction agreement",
  "additional_evidence_file": "file_jmbfgkjromvcrn9t4qu4",
  "additional_evidence_text": "Scanned document",
  "arbitration_no_review_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_no_review_text": "Evidence for arbitration",
  "arbitration_review_required_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_review_required_text": "Evidence for arbitration",
  "compelling_evidence": {
    "merchandise_or_service": "Merchandise",
    "merchandise_or_service_desc": "Subscription payment",
    "merchandise_or_service_provided_date": "2024-07-25T11:23:06Z",
    "shipping_delivery_status": "shipped",
    "tracking_information": "129481229312",
    "user_id": "user@cko.com",
    "ip_address": "192.168.1.150",
    "device_id": "device_123_x_1220",
    "shipping_address": {
      "address": "string",
      "address2": "string",
      "city": "string",
      "state_region": "st",
      "postal_code": "string",
      "country": "826"
    },
    "historical_transactions": [
      {
        "historical_arn": "stringstringstringstri",
        "merchandise_or_service_desc": "string"
      }
    ]
  }
}
```

<h3 id="get-dispute-evidence-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Dispute evidence retrieved successfully|[Evidence](#schemaevidence)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:view )
</aside>

## Submit dispute evidence

<a id="opIdsubmitDisputeEvidence"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    EmptyResponse response = await api.DisputesClient().SubmitEvidence("disputes_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.SubmitEvidence("dispute_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    EmptyResponse response = api.disputesClient().submitEvidence("dispute_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const submitEvidence = await cko.disputes.submit('dsp_bc94ebda8d275i461229');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getDisputesClient()->submitEvidence("dispute_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) 
    .build()
)

try:
    response = api.disputes.submit_evidence('dispute_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /disputes/{dispute_id}/evidence`

With this final request, you can submit the evidence that you have previously provided. Make sure you have provided all the relevant information before using this request. You will not be able to amend your evidence once you have submitted it.

<h3 id="submit-dispute-evidence-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier.|

> Example responses

> 422 Response

```json
{
  "request_id": "string",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}
```

<h3 id="submit-dispute-evidence-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Dispute evidence submitted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Entity|Inline|

<h3 id="submit-dispute-evidence-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|The request identifier.|
|» error_type|string|false|none|The error type.|
|» error_codes|[string]|false|none|The error codes returned from the validation. Each error code indicates the transaction with the problem.<br>  * `two_core_properties_in_historical_transactions_required` - When using compelling evidence you need to provide at least two of the following properties: `ip_address`, `device_id`, `shipping_address` or `user_id`.<br>  * `two_historical_transactions_required` - When using compelling evidence you need to provide at least two historical transactions.<br>  * `ip_address_and_device_id_is_required` - When using compelling evidence you need to provide `ip_address` or `device_id`.<br>  * `historical_transactions_should_be_different` - When using compelling evidence you need to provide different historical transactions.<br>  * `historical_transaction_{transaction_index}_fraud_report` - The ARN provided has a fraud report related.<br>  * `historical_transaction_{transaction_index}_active_dispute` - The ARN provided has an active dispute related.<br>  * `historical_transaction_{transaction_index}_fraud_dispute` - The ARN provided has a fraud dispute related.<br>  * `historical_transaction_{transaction_index}_not_found` - The ARN provided was not found.<br>  * `historical_transaction_{transaction_index}_age_invalid` - The historical transaction must be between 120 and 365 days.<br>  * `historical_transaction_{transaction_index}_bin_and_caid_not_exact_match` - The BIN and CAID from the transaction provided does not match with the disputed transaction.<br>  * `historical_transaction_{transaction_index}_billing_descriptor_does_not_match` - The billing descriptor from the transaction provided does not match with the disputed transaction.<br>  * `historical_transaction_{transaction_index}_card_does_not_match` - The card from the transaction provided does not match with the disputed transaction.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:provide-evidence )
</aside>

## Submit dispute arbitration evidence

<a id="opIdsubmitDisputeArbitrationEvidence"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    EmptyResponse response = await api.DisputesClient().SubmitArbitrationEvidence("disputes_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.SubmitArbitrationEvidence("dispute_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.DISPUTES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    EmptyResponse response = api.disputesClient().submitArbitrationEvidence("dispute_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const submitEvidence = await cko.disputes.submitArbitration('dsp_bc94ebda8d275i461229');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getDisputesClient()->submitArbitrationEvidence("dispute_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth()
    .client_credentials('client_id', 'client_secret')
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW])
    .build()
)

try:
    response = api.disputes.submit_arbitration_evidence('dispute_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /disputes/{dispute_id}/evidence/arbitration`

Submits the previously provided arbitration evidence to the scheme.

You cannot amend evidence after you submit with this endpoint. Ensure you have provided all of the required information.

<h3 id="submit-dispute-arbitration-evidence-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier.|

> Example responses

> 422 Response

```json
{
  "request_id": "string",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}
```

<h3 id="submit-dispute-arbitration-evidence-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Dispute arbitration evidence submitted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Entity|Inline|

<h3 id="submit-dispute-arbitration-evidence-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|The request identifier.|
|» error_type|string|false|none|The error type.|
|» error_codes|[string]|false|none|The error codes returned from the validation.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:provide-evidence )
</aside>

## Get dispute submitted arbitration evidence

<a id="opIdgetDisputeSubmittedArbitrationEvidence"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/arbitration/submitted";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /disputes/{dispute_id}/evidence/arbitration/submitted`

Retrieves the unique identifier of the PDF file containing all of the evidence submitted to escalate the dispute to arbitration.

To retrieve the file's download link, call the `GET /files/{file_id}` [endpoint](https://api-reference.checkout.com/#operation/getFileInformation) with the returned file ID.

<h3 id="get-dispute-submitted-arbitration-evidence-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier.|

> Example responses

> 200 Response

```json
{
  "file_id": "file_iweu3nxyt6zund3gwhg7wo4fhq",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_f28bcafe073z72ad4a18/evidence/submitted"
    }
  }
}
```

<h3 id="get-dispute-submitted-arbitration-evidence-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Dispute retrieved successfully|[SubmittedEvidenceResponse](#schemasubmittedevidenceresponse)|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Resource not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:view ), ApiSecretKey
</aside>

## Get dispute submitted evidence

<a id="opIdgetDisputeSubmittedEvidence"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/disputes/{dispute_id}/evidence/submitted";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /disputes/{dispute_id}/evidence/submitted`

Retrieves the unique identifier of the PDF file containing all the evidence submitted to represent the dispute case.

To retrieve the file's download link, call the `GET /files/{file_id}` [endpoint](https://api-reference.checkout.com/#operation/getFileInformation) with the returned file ID.

Evidence submitted before February 2024 cannot be retrieved using this endpoint.

<h3 id="get-dispute-submitted-evidence-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier.|

> Example responses

> 200 Response

```json
{
  "file_id": "file_iweu3nxyt6zund3gwhg7wo4fhq",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_f28bcafe073z72ad4a18/evidence/submitted"
    }
  }
}
```

<h3 id="get-dispute-submitted-evidence-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Dispute retrieved successfully|[SubmittedEvidenceResponse](#schemasubmittedevidenceresponse)|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Resource not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:view ), ApiSecretKey
</aside>

## Get dispute scheme files

<a id="opIdgetDisputeSchemeFiles"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Disputes}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.GetDisputeSchemeFiles("dispute_id")
if err != nil {
	return nil, err
}

return response, nil
```

`GET /disputes/{dispute_id}/schemefiles`

Returns all of the scheme files of a dispute using the dispute identifier. Currently available only for VISA disputes.

<h3 id="get-dispute-scheme-files-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|dispute_id|path|string|true|The dispute identifier|

> Example responses

> 200 Response

```json
{
  "id": "dsp_rbhwd2qrg13uhrp2newfab",
  "files": [
    {
      "dispute_status": "dispute_lost",
      "file": "file_6lbss42ezvoufcb2beo76rvwly"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf/schemefiles"
    }
  }
}
```

<h3 id="get-dispute-scheme-files-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Dispute retrieved successfully|[SchemeFileResponse](#schemaschemefileresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Dispute not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:scheme-files ), ApiSecretKey
</aside>

## Upload file

<a id="opIduploadFile"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    IdResponse response = await api.DisputesClient().SubmitFile("file_path", "dispute_evidence");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Files}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := common.File{
	File:    "evidence.pdf",
	Purpose: common.DisputesEvidence,
}

response, err := api.Disputes.UploadFile(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.FilePurpose;
import com.checkout.common.FileRequest;
import com.checkout.common.IdResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FILES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

File file = new File("evidence.pdf");
FileRequest fileRequest = FileRequest.builder()
    .file(file)
    .contentType(ContentType.create("application/pdf"))
    .purpose(FilePurpose.DISPUTE_EVIDENCE)
    .build();

try {
    IdResponse response = api.disputesClient().uploadFile(fileRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const file = await cko.files.upload({
		path: fs.createReadStream('./test/files/evidence.jpg'),
		purpose: 'dispute_evidence',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\Files\FileRequest;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$fileRequest = new FileRequest();
$fileRequest->file = "path/to/file";
$fileRequest->purpose = "dispute_evidence";

try {
    $response = $api->getDisputesClient()->uploadFile($fileRequest);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.files.files import FileRequest
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FILES, OAuthScopes.FILES_UPLOAD]) 
    .build()
)

request = FileRequest()
request.file = 'path/to/file'
request.purpose = 'dispute_evidence'

try:
    response = api.disputes.upload_file(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /files`

Upload a file to use as evidence in a dispute. Your file must be in either JPEG/JPG, PNG or PDF format, and be no larger than 4MB.

> Body parameter

```yaml
file: file=@/path/receipt.png;type=image/png
purpose: dispute_evidence

```

<h3 id="upload-file-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[File](#schemafile)|false|none|

> Example responses

> 201 Response

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    }
  }
}
```

<h3 id="upload-file-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|File uploaded successfully|[FileUploadResponse](#schemafileuploadresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:provide-evidence ), ApiSecretKey
</aside>

## Get file information

<a id="opIdgetFileInformation"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Files;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Disputes)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    FileDetailsResponse response = await api.DisputesClient().GetFileDetails("file_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Files}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Disputes.GetFileDetails("file_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.FileDetailsResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FILES) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    FileDetailsResponse response = api.disputesClient().getFileDetails("file_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const getFile = await cko.files.getFile('file_zna32sccqbwevd3ldmejtplbhu');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Disputes])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getDisputesClient()->getFileDetails("file_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FILES]) 
    .build()
)

try:
    response = api.disputes.get_file_details("file_id")
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /files/{file_id}`

Retrieve information about a file that was previously uploaded.

<h3 id="get-file-information-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|file_id|path|string|true|The file identifier. It is always prefixed by `file_`.|

> Example responses

> 200 Response

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "filename": "receipt.jpg",
  "purpose": "dispute_evidence",
  "size": 1024,
  "uploaded_on": "2019-05-17T16:48:52Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    },
    "download": {
      "href": "https://file-bucket.s3.eu-west-1.amazonaws.com/ucdac/ucdac/6lbss42ezvoufcb2beo76rvwly?X-Amz-Expires=3600&x-amz-security-token=FQoDYXdzENL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEa"
    }
  }
}
```

<h3 id="get-file-information-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|File information retrieved successfully|[FileResult](#schemafileresult)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|File not found|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests or duplicate request detected|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: disputes disputes:view ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-financial-actions">Financial actions</h1>

Returns all the processed financial actions associated with your given filter. The results are ordered by processing date in descending order (latest first).

## Get financial actions

<a id="opIdgetFinancialActions"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/financial"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.FinancialActions}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

query := financial.QueryFilter{
	PaymentId: "payment_id",
	ActionId:  "action_id",
	Limit:     20,
}

response, err := api.Financial.GetFinancialActions(query)
if err != nil {
	return nil, err
}

return response, nil
```

`GET /financial-actions`

Returns the list of financial actions and their details.

<h3 id="get-financial-actions-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|payment_id|query|string|false|The ID of the payment you want to retrieve financial actions for. Required if `action_id` is not used.|
|action_id|query|string|false|The ID of the action you want to retrieve financial actions for. Required if `payment_id` is not used.|
|limit|query|integer(int32)|false|The number of results to retrieve per page. </br> For example, if the total result count is 50, and you use `limit=10`, you will need to iterate over 5 pages containing 10 results each to retrieve all of the reports that match your query.|
|pagination_token|query|string|false|A token used for pagination when a response contains results across multiple pages.|

> Example responses

> 200 Response

```json
{
  "count": 1,
  "limit": 5,
  "data": [
    {
      "payment_id": "pay_qqufsd3rfnqufngwklghlxrzpm",
      "action_id": "act_wsnyzbzmr2huxcekoj7qqhxwuy",
      "action_type": "Capture",
      "entity_id": "ent_xozz5q2yvxsetbslrvjxugbsyy",
      "sub_entity_id": "ent_6akzb5simnkejihbnw6udjpecq",
      "currency_account_id": "ca_oo5z564in66ujcsxlbhjsar3p4",
      "payment_method": "MASTERCARD",
      "processing_channel_id": "pc_y7hikmc5flhuvav47blunjsdui",
      "mid": "mid-12345",
      "response_code": "10000",
      "response_description": "Approved",
      "region": "International",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_country": "US",
      "merchant_category_code": "5311",
      "fx_trade_id": "trd_intsaxljgi6uzkxnv6lex3xayu",
      "acquirer_reference_number": "01234567890123456789012",
      "account_funding_transaction": true,
      "scheme_fx_adjustment_eligible": true,
      "processed_on": "2022-02-18T13:00:12.357Z",
      "requested_on": "2022-02-18T13:00:11.724Z",
      "breakdown": [
        {
          "breakdown_type": "Scheme Fixed Fee",
          "fx_rate_applied": 1.24,
          "holding_currency": "USD",
          "holding_currency_amount": 0.19526938,
          "processing_currency": "GBP",
          "processing_currency_amount": 0.1581682,
          "transaction_currency": "EUR",
          "transaction_currency_amount": 0.18031175,
          "processing_to_transaction_currency_fx_rate": 1.14,
          "transaction_to_holding_currency_fx_rate": 1.08,
          "fee_detail": "Visa Fixed Acquirer Network Fee",
          "reserve_rate": "5%",
          "reserve_release_date": "2023-06-21T09:15:34.782Z",
          "reserve_deducted_date": "2022-02-18T13:00:12.357Z",
          "tax_fx_rate": 1.45,
          "scheme_fx_adjustment_processing_currency": "GBP",
          "scheme_fx_adjustment_rate_applied": 1.45,
          "entity_country_tax_currency": "AUD",
          "tax_currency_amount": 1.1
        }
      ],
      "bin": "444444",
      "issuing_bank": "Bank Name",
      "payment_type": "Regular"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5"
    },
    "next": {
      "href": "https://{prefix}.api.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5&pagination_token=string"
    }
  }
}
```

<h3 id="get-financial-actions-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Financial actions retrieved successfully|[FinancialActionListResponse](#schemafinancialactionlistresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized. Likely cause is that access token is not valid or was not specified.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity|[FinancialActionErrorResponse](#schemafinancialactionerrorresponse)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: financial-actions financial-actions:view ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-flow">Flow</h1>

A [Flow](https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website) payment session contains the information required to display relevant payment methods and handle the payment flow.

To enable access to Flow, contact your solutions engineer or [request support](https://dashboard.checkout.com/support/new?topic=case_account_management_and_access&issue=issue_account_changes).

## Request a Payment Session

<a id="opIdCreatePaymentSession"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payment-sessions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payment-sessions HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "expires_on": "2024-01-01T09:15:30Z",
  "enabled_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "payment_method_configuration": {
    "applepay": {
      "store_payment_details": "disabled",
      "account_holder": {},
      "total_type": "pending"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "store_payment_details": "disabled",
      "account_holder": {},
      "total_price_status": "estimated"
    },
    "stored_card": {
      "customer_id": "string",
      "instrument_ids": [
        "string"
      ],
      "default_instrument_id": "string"
    }
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "ip_address": "90.197.169.245"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payment-sessions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payment-sessions',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payment-sessions', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payment-sessions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payment-sessions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payment-sessions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payment-sessions";
      
      string json = @"{
  ""amount"": 1000,
  ""currency"": ""USD"",
  ""payment_type"": ""Regular"",
  ""authorization_type"": ""Estimated"",
  ""billing"": {
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    }
  },
  ""billing_descriptor"": {
    ""name"": ""string"",
    ""city"": ""string"",
    ""reference"": ""string""
  },
  ""reference"": ""ORD-123A"",
  ""description"": ""Payment for gold necklace"",
  ""customer"": {
    ""email"": ""jia.tsang@example.com"",
    ""name"": ""Jia Tsang"",
    ""id"": ""string"",
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    },
    ""tax_number"": ""string"",
    ""summary"": {
      ""registration_date"": ""2023-05-01"",
      ""first_transaction_date"": ""2023-07-01"",
      ""last_payment_date"": ""2023-08-01"",
      ""total_order_count"": 15,
      ""last_payment_amount"": 500,
      ""is_premium_customer"": true,
      ""is_returning_customer"": true,
      ""lifetime_value"": 500
    }
  },
  ""shipping"": {
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    }
  },
  ""recipient"": {
    ""dob"": ""1985-05-15"",
    ""account_number"": ""5555554444"",
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""first_name"": ""Jia"",
    ""last_name"": ""Tsang""
  },
  ""processing"": {
    ""aft"": true,
    ""discount_amount"": 0,
    ""shipping_amount"": 300,
    ""tax_amount"": 3000,
    ""invoice_id"": ""string"",
    ""brand_name"": ""string"",
    ""locale"": ""en-US"",
    ""partner_customer_risk_data"": {
      ""key"": ""string"",
      ""value"": ""string""
    },
    ""custom_payment_method_ids"": [
      ""string""
    ],
    ""airline_data"": [
      {
        ""ticket"": {
          ""number"": ""045-21351455613"",
          ""issue_date"": ""2023-05-20"",
          ""issuing_carrier_code"": ""AI"",
          ""travel_package_indicator"": ""B"",
          ""travel_agency_name"": ""World Tours"",
          ""travel_agency_code"": ""01""
        },
        ""passenger"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""White"",
            ""date_of_birth"": ""1990-05-26"",
            ""address"": {
              ""country"": ""US""
            }
          }
        ],
        ""flight_leg_details"": [
          {
            ""flight_number"": ""101"",
            ""carrier_code"": ""BA"",
            ""class_of_travelling"": ""J"",
            ""departure_airport"": ""LHR"",
            ""departure_date"": ""2023-06-19"",
            ""departure_time"": ""15:30"",
            ""arrival_airport"": ""LAX"",
            ""stop_over_code"": ""x"",
            ""fare_basis_code"": ""SPRSVR""
          }
        ]
      }
    ],
    ""accommodation_data"": [
      {
        ""name"": ""The Sea View Hotel"",
        ""booking_reference"": ""HOTEL123"",
        ""check_in_date"": ""2023-06-20"",
        ""check_out_date"": ""2023-06-23"",
        ""address"": {
          ""address_line1"": ""123 Beach Road"",
          ""zip"": ""10001""
        },
        ""state"": ""FL"",
        ""country"": ""USA"",
        ""city"": ""Los Angeles"",
        ""number_of_rooms"": 2,
        ""guests"": [
          {
            ""first_name"": ""Jane"",
            ""last_name"": ""Doe"",
            ""date_of_birth"": ""1985-07-14""
          }
        ],
        ""room"": [
          {
            ""rate"": ""70"",
            ""number_of_nights_at_room_rate"": ""3""
          }
        ]
      }
    ],
    ""order_id"": ""123456789"",
    ""surcharge_amount"": 200,
    ""duty_amount"": 0,
    ""shipping_tax_amount"": 100,
    ""affiliate_id"": ""string"",
    ""affiliate_url"": ""www.mycrypto.com"",
    ""purchase_country"": ""string"",
    ""merchant_initiated_reason"": ""Delayed_charge"",
    ""campaign_id"": 0,
    ""original_order_amount"": 10,
    ""receipt_id"": ""10"",
    ""merchant_callback_url"": ""string"",
    ""line_of_business"": ""Flights"",
    ""pan_preference"": ""fpan"",
    ""provision_network_token"": true,
    ""reconciliation_id"": ""4123495123"",
    ""aggregator"": {
      ""sub_merchant_id"": ""9cf70789ba90123"",
      ""aggregator_id_visa"": ""10012345"",
      ""aggregator_id_mc"": ""00000123456""
    }
  },
  ""instruction"": {
    ""purpose"": ""donations""
  },
  ""processing_channel_id"": ""string"",
  ""items"": [
    {
      ""reference"": ""string"",
      ""commodity_code"": ""string"",
      ""unit_of_measure"": ""string"",
      ""total_amount"": 1000,
      ""tax_amount"": 1000,
      ""discount_amount"": 1000,
      ""url"": ""string"",
      ""image_url"": ""string"",
      ""name"": ""Gold Necklace"",
      ""quantity"": 1,
      ""unit_price"": 1000
    }
  ],
  ""amount_allocations"": [
    {
      ""id"": ""string"",
      ""amount"": 1,
      ""reference"": ""ORD-123A"",
      ""commission"": {
        ""amount"": 10,
        ""percentage"": 12.5
      }
    }
  ],
  ""risk"": {
    ""enabled"": false
  },
  ""display_name"": ""string"",
  ""success_url"": ""https://example.com/payments/success"",
  ""failure_url"": ""https://example.com/payments/failure"",
  ""metadata"": {
    ""coupon_code"": ""NY2018""
  },
  ""locale"": ""ar"",
  ""3ds"": {
    ""enabled"": ""false"",
    ""challenge_indicator"": ""no_preference"",
    ""allow_upgrade"": true,
    ""exemption"": ""low_value""
  },
  ""sender"": {},
  ""capture"": true,
  ""capture_on"": ""2024-01-01T09:15:30Z"",
  ""payment_plan"": {
    ""amount_variability"": ""Variable"",
    ""days_between_payments"": 28,
    ""total_number_of_payments"": 5,
    ""current_payment_number"": 3,
    ""expiry"": ""20251031"",
    ""name"": ""Subscription 1234"",
    ""start_date"": ""20260507"",
    ""amount"": 1234
  },
  ""expires_on"": ""2024-01-01T09:15:30Z"",
  ""enabled_payment_methods"": [
    ""card"",
    ""applepay"",
    ""googlepay""
  ],
  ""disabled_payment_methods"": [
    ""eps"",
    ""ideal"",
    ""knet""
  ],
  ""payment_method_configuration"": {
    ""applepay"": {
      ""store_payment_details"": ""disabled"",
      ""account_holder"": {},
      ""total_type"": ""pending""
    },
    ""card"": {
      ""store_payment_details"": ""disabled"",
      ""account_holder"": {}
    },
    ""googlepay"": {
      ""store_payment_details"": ""disabled"",
      ""account_holder"": {},
      ""total_price_status"": ""estimated""
    },
    ""stored_card"": {
      ""customer_id"": ""string"",
      ""instrument_ids"": [
        ""string""
      ],
      ""default_instrument_id"": ""string""
    }
  },
  ""customer_retry"": {
    ""max_attempts"": 2
  },
  ""ip_address"": ""90.197.169.245""
}";
      CreatePaymentSessionsRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(CreatePaymentSessionsRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(CreatePaymentSessionsRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payment-sessions`

Creates a payment session.

The values you provide in the request will be used to determine the payment methods available to Flow. Some payment methods may require you to provide specific values for certain fields. Refer to our <a href="https://www.checkout.com/docs/payments/add-payment-methods">documentation</a> for more information.

You must supply the unmodified response body when you <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/get-started-with-flow#Initialize_and_mount_Flow_">initialize Flow</a>.

> Body parameter

```json
{
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "expires_on": "2024-01-01T09:15:30Z",
  "enabled_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "payment_method_configuration": {
    "applepay": {
      "store_payment_details": "disabled",
      "account_holder": {},
      "total_type": "pending"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "store_payment_details": "disabled",
      "account_holder": {},
      "total_price_status": "estimated"
    },
    "stored_card": {
      "customer_id": "string",
      "instrument_ids": [
        "string"
      ],
      "default_instrument_id": "string"
    }
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "ip_address": "90.197.169.245"
}
```

<h3 id="request-a-payment-session-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[CreatePaymentSessionsRequest](#schemacreatepaymentsessionsrequest)|false|none|

> Example responses

> 201 Response

```json
{
  "id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_token": "string",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-sessions/ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ"
    }
  }
}
```

<h3 id="request-a-payment-session-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|A Payment Session.|[CreatePaymentSessionsResponse](#schemacreatepaymentsessionsresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized (Empty Response).|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent.|[PaymentSessionsValidationErrorResponse](#schemapaymentsessionsvalidationerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests.|[PaymentSessionsRateLimitedResponse](#schemapaymentsessionsratelimitedresponse)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway:payment payment-sessions ), ApiSecretKey
</aside>

## Submit a Payment Session

<a id="opIdSubmitPaymentSession"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "session_data": "string",
  "amount": 1000,
  "currency": "USD",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "payment_type": "Regular",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "ip_address": "90.197.169.245",
  "payment_method_configuration": {
    "applepay": {
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled"
    },
    "googlepay": {
      "store_payment_details": "disabled"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "processing": {
    "pan_preference": "fpan",
    "provision_network_token": true
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payment-sessions/{id}/submit";
      
      string json = @"{
  ""session_data"": ""string"",
  ""amount"": 1000,
  ""currency"": ""USD"",
  ""billing"": {
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    }
  },
  ""success_url"": ""https://example.com/payments/success"",
  ""failure_url"": ""https://example.com/payments/failure"",
  ""payment_type"": ""Regular"",
  ""billing_descriptor"": {
    ""name"": ""string"",
    ""city"": ""string"",
    ""reference"": ""string""
  },
  ""reference"": ""ORD-123A"",
  ""customer"": {
    ""email"": ""jia.tsang@example.com"",
    ""name"": ""Jia Tsang"",
    ""id"": ""string"",
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    },
    ""tax_number"": ""string"",
    ""summary"": {
      ""registration_date"": ""2023-05-01"",
      ""first_transaction_date"": ""2023-07-01"",
      ""last_payment_date"": ""2023-08-01"",
      ""total_order_count"": 15,
      ""last_payment_amount"": 500,
      ""is_premium_customer"": true,
      ""is_returning_customer"": true,
      ""lifetime_value"": 500
    }
  },
  ""shipping"": {
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    }
  },
  ""items"": [
    {
      ""reference"": ""string"",
      ""commodity_code"": ""string"",
      ""unit_of_measure"": ""string"",
      ""total_amount"": 1000,
      ""tax_amount"": 1000,
      ""discount_amount"": 1000,
      ""url"": ""string"",
      ""image_url"": ""string"",
      ""name"": ""Gold Necklace"",
      ""quantity"": 1,
      ""unit_price"": 1000
    }
  ],
  ""amount_allocations"": [
    {
      ""id"": ""string"",
      ""amount"": 1,
      ""reference"": ""ORD-123A"",
      ""commission"": {
        ""amount"": 10,
        ""percentage"": 12.5
      }
    }
  ],
  ""3ds"": {
    ""enabled"": ""false"",
    ""challenge_indicator"": ""no_preference"",
    ""allow_upgrade"": true,
    ""exemption"": ""low_value""
  },
  ""ip_address"": ""90.197.169.245"",
  ""payment_method_configuration"": {
    ""applepay"": {
      ""store_payment_details"": ""disabled""
    },
    ""card"": {
      ""store_payment_details"": ""disabled""
    },
    ""googlepay"": {
      ""store_payment_details"": ""disabled""
    }
  },
  ""recipient"": {
    ""dob"": ""1985-05-15"",
    ""account_number"": ""5555554444"",
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""first_name"": ""Jia"",
    ""last_name"": ""Tsang""
  },
  ""instruction"": {
    ""purpose"": ""donations""
  },
  ""processing_channel_id"": ""string"",
  ""metadata"": {
    ""coupon_code"": ""NY2018""
  },
  ""sender"": {},
  ""capture"": true,
  ""capture_on"": ""2024-01-01T09:15:30Z"",
  ""processing"": {
    ""pan_preference"": ""fpan"",
    ""provision_network_token"": true
  }
}";
      SubmitPaymentSessionsRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SubmitPaymentSessionsRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SubmitPaymentSessionsRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payment-sessions/{id}/submit`

Submit a payment attempt for a payment session.

This request works with the Flow <a href="https://checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/flow-library-reference/flowcomponent#handleSubmit(FlowComponent,_SubmitData)">handleSubmit</a> callback, where you can perform <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/extend-your-flow-integration/dynamically-adjust-the-payment-amount">a customized payment submission</a>.
You must send the unmodified response body as the response of the `handleSubmit` callback.

> Body parameter

```json
{
  "session_data": "string",
  "amount": 1000,
  "currency": "USD",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "payment_type": "Regular",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "ip_address": "90.197.169.245",
  "payment_method_configuration": {
    "applepay": {
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled"
    },
    "googlepay": {
      "store_payment_details": "disabled"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "processing": {
    "pan_preference": "fpan",
    "provision_network_token": true
  }
}
```

<h3 id="submit-a-payment-session-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|[PaymentSessionId](#schemapaymentsessionid)|true|The Payment Sessions unique identifier|
|body|body|[SubmitPaymentSessionsRequest](#schemasubmitpaymentsessionsrequest)|false|none|

> Example responses

> Payment processed successfully.

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Approved",
  "type": "card"
}
```

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Declined",
  "type": "card",
  "decline_reason": "insufficient_funds"
}
```

> 202 Response

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Action Required",
  "type": "alipay_cn",
  "action": {}
}
```

<h3 id="submit-a-payment-session-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Payment processed successfully.|[SubmitPaymentSessionsProcessedResponse](#schemasubmitpaymentsessionsprocessedresponse)|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Payment asynchronous or further action required.|[SubmitPaymentSessionsActionRequiredResponse](#schemasubmitpaymentsessionsactionrequiredresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized (Empty Response).|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent.|[PaymentSessionsValidationErrorResponse](#schemapaymentsessionsvalidationerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests or duplicate request detected.|[PaymentSessionsRateLimitedResponse](#schemapaymentsessionsratelimitedresponse)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway:payment payment-sessions ), ApiSecretKey
</aside>

## Request a Payment Session with Payment

<a id="opIdCreateAndSubmitPaymentSession"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "session_data": "string",
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payment-sessions/complete";
      
      string json = @"{
  ""session_data"": ""string"",
  ""amount"": 1000,
  ""currency"": ""USD"",
  ""payment_type"": ""Regular"",
  ""authorization_type"": ""Estimated"",
  ""billing"": {
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    }
  },
  ""billing_descriptor"": {
    ""name"": ""string"",
    ""city"": ""string"",
    ""reference"": ""string""
  },
  ""reference"": ""ORD-123A"",
  ""description"": ""Payment for gold necklace"",
  ""customer"": {
    ""email"": ""jia.tsang@example.com"",
    ""name"": ""Jia Tsang"",
    ""id"": ""string"",
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    },
    ""tax_number"": ""string"",
    ""summary"": {
      ""registration_date"": ""2023-05-01"",
      ""first_transaction_date"": ""2023-07-01"",
      ""last_payment_date"": ""2023-08-01"",
      ""total_order_count"": 15,
      ""last_payment_amount"": 500,
      ""is_premium_customer"": true,
      ""is_returning_customer"": true,
      ""lifetime_value"": 500
    }
  },
  ""shipping"": {
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    }
  },
  ""recipient"": {
    ""dob"": ""1985-05-15"",
    ""account_number"": ""5555554444"",
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""first_name"": ""Jia"",
    ""last_name"": ""Tsang""
  },
  ""processing"": {
    ""aft"": true,
    ""discount_amount"": 0,
    ""shipping_amount"": 300,
    ""tax_amount"": 3000,
    ""invoice_id"": ""string"",
    ""brand_name"": ""string"",
    ""locale"": ""en-US"",
    ""partner_customer_risk_data"": {
      ""key"": ""string"",
      ""value"": ""string""
    },
    ""custom_payment_method_ids"": [
      ""string""
    ],
    ""airline_data"": [
      {
        ""ticket"": {
          ""number"": ""045-21351455613"",
          ""issue_date"": ""2023-05-20"",
          ""issuing_carrier_code"": ""AI"",
          ""travel_package_indicator"": ""B"",
          ""travel_agency_name"": ""World Tours"",
          ""travel_agency_code"": ""01""
        },
        ""passenger"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""White"",
            ""date_of_birth"": ""1990-05-26"",
            ""address"": {
              ""country"": ""US""
            }
          }
        ],
        ""flight_leg_details"": [
          {
            ""flight_number"": ""101"",
            ""carrier_code"": ""BA"",
            ""class_of_travelling"": ""J"",
            ""departure_airport"": ""LHR"",
            ""departure_date"": ""2023-06-19"",
            ""departure_time"": ""15:30"",
            ""arrival_airport"": ""LAX"",
            ""stop_over_code"": ""x"",
            ""fare_basis_code"": ""SPRSVR""
          }
        ]
      }
    ],
    ""accommodation_data"": [
      {
        ""name"": ""The Sea View Hotel"",
        ""booking_reference"": ""HOTEL123"",
        ""check_in_date"": ""2023-06-20"",
        ""check_out_date"": ""2023-06-23"",
        ""address"": {
          ""address_line1"": ""123 Beach Road"",
          ""zip"": ""10001""
        },
        ""state"": ""FL"",
        ""country"": ""USA"",
        ""city"": ""Los Angeles"",
        ""number_of_rooms"": 2,
        ""guests"": [
          {
            ""first_name"": ""Jane"",
            ""last_name"": ""Doe"",
            ""date_of_birth"": ""1985-07-14""
          }
        ],
        ""room"": [
          {
            ""rate"": ""70"",
            ""number_of_nights_at_room_rate"": ""3""
          }
        ]
      }
    ],
    ""order_id"": ""123456789"",
    ""surcharge_amount"": 200,
    ""duty_amount"": 0,
    ""shipping_tax_amount"": 100,
    ""affiliate_id"": ""string"",
    ""affiliate_url"": ""www.mycrypto.com"",
    ""purchase_country"": ""string"",
    ""merchant_initiated_reason"": ""Delayed_charge"",
    ""campaign_id"": 0,
    ""original_order_amount"": 10,
    ""receipt_id"": ""10"",
    ""merchant_callback_url"": ""string"",
    ""line_of_business"": ""Flights"",
    ""pan_preference"": ""fpan"",
    ""provision_network_token"": true,
    ""reconciliation_id"": ""4123495123"",
    ""aggregator"": {
      ""sub_merchant_id"": ""9cf70789ba90123"",
      ""aggregator_id_visa"": ""10012345"",
      ""aggregator_id_mc"": ""00000123456""
    }
  },
  ""instruction"": {
    ""purpose"": ""donations""
  },
  ""processing_channel_id"": ""string"",
  ""items"": [
    {
      ""reference"": ""string"",
      ""commodity_code"": ""string"",
      ""unit_of_measure"": ""string"",
      ""total_amount"": 1000,
      ""tax_amount"": 1000,
      ""discount_amount"": 1000,
      ""url"": ""string"",
      ""image_url"": ""string"",
      ""name"": ""Gold Necklace"",
      ""quantity"": 1,
      ""unit_price"": 1000
    }
  ],
  ""amount_allocations"": [
    {
      ""id"": ""string"",
      ""amount"": 1,
      ""reference"": ""ORD-123A"",
      ""commission"": {
        ""amount"": 10,
        ""percentage"": 12.5
      }
    }
  ],
  ""risk"": {
    ""enabled"": false
  },
  ""display_name"": ""string"",
  ""success_url"": ""https://example.com/payments/success"",
  ""failure_url"": ""https://example.com/payments/failure"",
  ""metadata"": {
    ""coupon_code"": ""NY2018""
  },
  ""locale"": ""ar"",
  ""3ds"": {
    ""enabled"": ""false"",
    ""challenge_indicator"": ""no_preference"",
    ""allow_upgrade"": true,
    ""exemption"": ""low_value""
  },
  ""sender"": {},
  ""capture"": true,
  ""capture_on"": ""2024-01-01T09:15:30Z"",
  ""payment_plan"": {
    ""amount_variability"": ""Variable"",
    ""days_between_payments"": 28,
    ""total_number_of_payments"": 5,
    ""current_payment_number"": 3,
    ""expiry"": ""20251031"",
    ""name"": ""Subscription 1234"",
    ""start_date"": ""20260507"",
    ""amount"": 1234
  }
}";
      CreateAndSubmitPaymentSessionsRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(CreateAndSubmitPaymentSessionsRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(CreateAndSubmitPaymentSessionsRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payment-sessions/complete`

Create a payment session and submit a payment attempt for it.

The values you provide in the request will be used to determine the payment methods available to Flow. Some payment methods may require you to provide specific values for certain fields. Refer to our <a href="https://www.checkout.com/docs/payments/add-payment-methods">documentation</a> for more information.

This request works with the advanced Flow integration, where <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/extend-your-flow-integration/collect-payment-details-without-an-initial-payment-session">you do not need to create a payment session for initializing Flow</a>. You must send the unmodified response body as the response of the <a href="https://checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/flow-library-reference/flowcomponent#handleSubmit(FlowComponent,_SubmitData)">handleSubmit</a> callback.

> Body parameter

```json
{
  "session_data": "string",
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  }
}
```

<h3 id="request-a-payment-session-with-payment-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[CreateAndSubmitPaymentSessionsRequest](#schemacreateandsubmitpaymentsessionsrequest)|false|none|

> Example responses

> Payment processed successfully.

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Approved",
  "type": "card",
  "payment_session_id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
}
```

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Declined",
  "type": "card",
  "decline_reason": "insufficient_funds"
}
```

> 202 Response

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Action Required",
  "type": "alipay_cn",
  "action": {},
  "payment_session_id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
}
```

<h3 id="request-a-payment-session-with-payment-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Payment processed successfully.|[CreateAndSubmitPaymentSessionsProcessedResponse](#schemacreateandsubmitpaymentsessionsprocessedresponse)|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Payment asynchronous or further action required.|[CreateAndSubmitPaymentSessionsActionRequiredResponse](#schemacreateandsubmitpaymentsessionsactionrequiredresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized (Empty Response).|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent.|[PaymentSessionsValidationErrorResponse](#schemapaymentsessionsvalidationerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests or duplicate request detected.|[PaymentSessionsRateLimitedResponse](#schemapaymentsessionsratelimitedresponse)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway:payment payment-sessions ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-forex">Forex</h1>

Use the Forex API to access Checkout.com's foreign exchange (FX) services.

## Get FX rates

<a id="opIdgetFxRates"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/forex/rates?product=card_payouts&source=visa&currency_pairs=USDGBP%2CEURNOK%2CJPYCAD&processing_channel_id=pc_vxt6yftthv4e5flqak6w2i7rim \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/forex/rates?product=card_payouts&source=visa&currency_pairs=USDGBP%2CEURNOK%2CJPYCAD&processing_channel_id=pc_vxt6yftthv4e5flqak6w2i7rim HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/forex/rates?product=card_payouts&source=visa&currency_pairs=USDGBP%2CEURNOK%2CJPYCAD&processing_channel_id=pc_vxt6yftthv4e5flqak6w2i7rim',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/forex/rates',
  params: {
  'product' => '[ForexProduct](#schemaforexproduct)',
'source' => '[ForexSource](#schemaforexsource)',
'currency_pairs' => 'string',
'processing_channel_id' => '[ForexProcessingChannelId](#schemaforexprocessingchannelid)'
}, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/forex/rates', params={
  'product': 'card_payouts',  'source': 'visa',  'currency_pairs': 'USDGBP,EURNOK,JPYCAD',  'processing_channel_id': 'pc_vxt6yftthv4e5flqak6w2i7rim'
}, headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/forex/rates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/forex/rates?product=card_payouts&source=visa&currency_pairs=USDGBP%2CEURNOK%2CJPYCAD&processing_channel_id=pc_vxt6yftthv4e5flqak6w2i7rim");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/forex/rates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/forex/rates";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /forex/rates`

Get the indicative foreign exchange (FX) rates for:

  - <a href="https://www.checkout.com/docs/developer-resources/api/fx-rates-api#Daily_acquiring_FX_rates" target="_blank">Daily acquiring</a>
  - <a href="https://www.checkout.com/docs/developer-resources/api/fx-rates-api#Scheme_acquiring_FX_rates" target="_blank">Scheme acquiring</a>
  - <a href="https://www.checkout.com/docs/developer-resources/api/fx-rates-api#Card_payouts_FX_rates" target="_blank">Card payouts</a>

If you request an FX rate for a product that is not enabled for your account, you receive a `403 Forbidden` error response.

<h3 id="get-fx-rates-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|product|query|[ForexProduct](#schemaforexproduct)|true|none|
|source|query|[ForexSource](#schemaforexsource)|true|none|
|currency_pairs|query|string|true|none|
|processing_channel_id|query|[ForexProcessingChannelId](#schemaforexprocessingchannelid)|true|none|

#### Enumerated Values

|Parameter|Value|
|---|---|
|product|card_payouts|
|product|daily_acquiring|
|product|scheme_acquiring|
|source|mastercard|
|source|visa|

> Example responses

> 200 Response

```json
{
  "product": "card_payouts",
  "source": "visa",
  "rates": [
    {
      "exchange_rate": 1.14208777,
      "currency_pair": "GBPEUR"
    },
    {
      "exchange_rate": 0.83708142,
      "currency_pair": "USDGBP"
    }
  ],
  "invalid_currency_pairs": [
    "XXXAAA"
  ]
}
```

<h3 id="get-fx-rates-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Rates retrieved successfully|[ForexRatesResponse](#schemaforexratesresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests / Duplicate Requests|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|422|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: fx )
</aside>

<h1 id="checkout-com-api-reference-hosted-payments-page">Hosted Payments Page</h1>

Create a Hosted Payments Page to accept and process payment details.

## Create a Hosted Payments Page session

<a id="opIdcreateAHostedPaymentsSession"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Payments;
using Checkout.Payments.Hosted;

ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

HostedPaymentRequest request = new HostedPaymentRequest()
{
    Amount = 10,
    Currency = Currency.GBP,
    PaymentType = PaymentType.Regular,
    PaymentIp = "192.168.0.1",
    BillingDescriptor = new BillingDescriptor() {Name = "Name", City = "City"},
    Reference = "reference",
    Description = "Payment for Gold Necklace",
    Customer = new CustomerRequest() {Email = "email@docs.checkout.com", Name = "FirstName LastName"},
    Shipping =
        new ShippingDetails()
        {
            Address = new Address()
            {
                AddressLine1 = "123 High St.",
                AddressLine2 = "Flat 456",
                City = "London",
                State = "GB",
                Zip = "SW1A 1AA",
                Country = CountryCode.GB
            },
            Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
        },
    Billing =
        new BillingInformation()
        {
            Address = new Address()
            {
                AddressLine1 = "123 High St.",
                AddressLine2 = "Flat 456",
                City = "London",
                State = "GB",
                Zip = "SW1A 1AA",
                Country = CountryCode.GB
            },
            Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
        },
    Recipient =
        new PaymentRecipient()
        {
            DateOfBirth = "1985-05-15", AccountNumber = "5555554444", Zip = "SW1A", LastName = "LastName",
        },
    Processing = new ProcessingSettings() {Aft = true},
    Products = new List<Product>() {new Product() {Name = "Gold Necklace", Quantity = 1, Price = 1000}},
    Risk = new RiskRequest() {Enabled = false},
    SuccessUrl = "https://example.com/payments/success",
    CancelUrl = "https://example.com/payments/cancel",
    FailureUrl = "https://example.com/payments/failure",
    Metadata = new Dictionary<string, object>(),
    Locale = "en-GB",
    ThreeDs = new ThreeDsRequest() {Enabled = false, AttemptN3D = false},
    Capture = true,
    CaptureOn = new DateTime()
};

try
{
    HostedPaymentResponse response =
        await api.HostedPaymentsClient().CreateHostedPaymentsPageSession(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments"
	"github.com/checkout/checkout-sdk-go/payments/hosted"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

address := common.Address{
	AddressLine1: "123 High St.",
	AddressLine2: "Flat 456",
	City:         "London",
	State:        "GB",
	Zip:          "SW1A 1AA",
	Country:      common.GB,
}

phone := common.Phone{
	CountryCode: "1",
	Number:      "415 555 2671",
}

request := hosted.HostedPaymentRequest{
	Amount:      10,
	Currency:    common.GBP,
	PaymentType: payments.Regular,
	BillingDescriptor: &payments.BillingDescriptor{
		Name: "Name",
		City: "London",
	},
	Reference:   "Reference",
	Description: "Description",
	Customer: &common.CustomerRequest{
		Email: "email@docs.checkout.com",
		Name:  "Name",
	},
	Shipping: &payments.ShippingDetails{
		Address: &address,
		Phone:   &phone,
	},
	Billing: &payments.BillingInformation{
		Address: &address,
		Phone:   &phone,
	},
	Recipient: &payments.PaymentRecipient{
		DateOfBirth:   "1985-05-15",
		AccountNumber: "999999999",
		Zip:           "12345",
		LastName:      "LastName",
	},
	Processing: &payments.ProcessingSettings{Aft: true},
	Products: []payments.Product{
		{
			Name:     "name",
			Quantity: 1,
			Price:    200,
		},
	},
	Risk:       &payments.RiskRequest{Enabled: false},
	SuccessUrl: "https://docs.checkout.com/payments/success",
	CancelUrl:  "https://docs.checkout.com/payments/cancel",
	FailureUrl: "https://docs.checkout.com/payments/failure",
	Locale:     "en-GB",
	ThreeDs: &payments.ThreeDsRequest{
		Enabled:            false,
		AttemptN3D:         false,
		ChallengeIndicator: common.NoChallengeRequested,
	},
	Capture:   true,
	CaptureOn: time.Now().AddDate(0, 0, 30),
}

response, err := api.Hosted.CreateHostedPaymentsPageSession(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.Address;
import com.checkout.common.ChallengeIndicator;
import com.checkout.common.CountryCode;
import com.checkout.common.Currency;
import com.checkout.common.CustomerRequest;
import com.checkout.common.Phone;
import com.checkout.common.Product;
import com.checkout.payments.BillingDescriptor;
import com.checkout.payments.BillingInformation;
import com.checkout.payments.PaymentRecipient;
import com.checkout.payments.PaymentType;
import com.checkout.payments.ProcessingSettings;
import com.checkout.payments.RiskRequest;
import com.checkout.payments.ShippingDetails;
import com.checkout.payments.ThreeDSRequest;
import com.checkout.payments.hosted.HostedPaymentRequest;
import com.checkout.payments.hosted.HostedPaymentResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
        .staticKeys()
        .secretKey("secret_key")
        .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
        .build();

HostedPaymentRequest request = HostedPaymentRequest.builder()
    .amount(10L)
    .reference("reference")
    .currency(Currency.GBP)
    .description("Payment")
    .customer(new CustomerRequest(null, "email@docs.checkout.com", "Name", null))
    .shipping(ShippingDetails.builder()
        .address(Address.builder()
        .addressLine1("123 High St.")
        .addressLine2("Flat 456")
        .city("London")
        .state("GB")
        .zip("SW1A 1AA")
        .country(CountryCode.GB)
        .build())
    .phone(Phone.builder().countryCode("1").number("415 555 2671").build())
        .build())
    .billing(BillingInformation.builder()
        .address(Address.builder()
        .addressLine1("123 High St.")
        .addressLine2("Flat 456")
        .city("London")
        .state("GB")
        .zip("SW1A 1AA")
        .country(CountryCode.GB)
        .build())
    .phone(Phone.builder().countryCode("1").number("415 555 2671").build())
        .build())
    .recipient(PaymentRecipient.builder()
        .accountNumber("999999999")
        .dateOfBirth("1985-05-15")
        .lastName("LastName")
        .zip("12345")
        .build())
    .processing(ProcessingSettings.builder()
        .aft(true)
        .build())
    .products(Collections.singletonList(Product.builder()
        .name("name")
        .quantity(1L)
        .price(200L)
        .build()))
    .risk(new RiskRequest(Boolean.FALSE))
    .locale("en-GB")
    .threeDS(ThreeDSRequest.builder()
    .enabled(Boolean.FALSE)
    .attemptN3D(Boolean.FALSE)
    .challengeIndicator(ChallengeIndicator.NO_CHALLENGE_REQUESTED)
        .build())
    .capture(true)
    .captureOn(Instant.now().plus(30, ChronoUnit.DAYS))
    .paymentType(PaymentType.REGULAR)
    .billingDescriptor(BillingDescriptor.builder()
        .city("London")
        .name("name")
        .build())
    .successUrl("https://docs.checkout.com/payments/success")
    .failureUrl("https://docs.checkout.com/payments/success")
    .cancelUrl("https://docs.checkout.com/payments/success")
    .build();

try {
    HostedPaymentResponse response = api.hostedPaymentsClient().createHostedPaymentsPageSession(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}

```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Currency;
use Checkout\Common\CustomerRequest;
use Checkout\Common\PaymentSourceType;
use Checkout\Common\Phone;
use Checkout\Common\Product;
use Checkout\Environment;
use Checkout\Payments\BillingDescriptor;
use Checkout\Payments\BillingInformation;
use Checkout\Payments\Hosted\HostedPaymentsSessionRequest;
use Checkout\Payments\PaymentRecipient;
use Checkout\Payments\PaymentType;
use Checkout\Payments\ProcessingSettings;
use Checkout\Payments\RiskRequest;
use Checkout\Payments\ShippingDetails;
use Checkout\Payments\ThreeDsRequest;

$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$customerRequest = new CustomerRequest();
$customerRequest->email = "email@docs.checkout.com";
$customerRequest->name = "Name";

$billingInformation = new BillingInformation();
$billingInformation->address = $address;
$billingInformation->phone = $phone;

$shippingDetails = new ShippingDetails();
$shippingDetails->address = $address;
$shippingDetails->phone = $phone;

$recipient = new PaymentRecipient();
$recipient->account_number = "1234567";
$recipient->dob = "1985-05-15";
$recipient->last_name = "LastName";
$recipient->zip = "12345";

$product = new Product();
$product->name = "Product";
$product->quantity = 1;
$product->price = 10;

$products = array($product);

$theeDsRequest = new ThreeDsRequest();
$theeDsRequest->enabled = false;
$theeDsRequest->attempt_n3d = false;

$processing = new ProcessingSettings();
$processing->aft = true;

$risk = new RiskRequest();
$risk->enabled = false;

$billingDescriptor = new BillingDescriptor();
$billingDescriptor->city = "London";
$billingDescriptor->name = "Awesome name";

$request = new HostedPaymentsSessionRequest();
$request->amount = 100;
$request->reference = "reference";
$request->currency = Currency::$GBP;
$request->description = "Payment for Gold Necklace";
$request->customer = $customerRequest;
$request->shipping = $shippingDetails;
$request->billing = $billingInformation;
$request->recipient = $recipient;
$request->processing = $processing;
$request->products = $products;
$request->risk = $risk;
$request->success_url = "https://example.com/payments/success";
$request->cancel_url = "https://example.com/payments/cancel";
$request->failure_url = "https://example.com/payments/failure";
$request->locale = "en-GB";
$request->three_ds = $theeDsRequest;
$request->capture = true;
$request->payment_type = PaymentType::$regular;
$request->billing_descriptor = $billingDescriptor;
$request->allow_payment_methods = array(PaymentSourceType::$card, PaymentSourceType::$ideal);

try {
    $response = $api->getHostedPaymentsClient()->createHostedPaymentsPageSession($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}

```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone, Address, CustomerRequest, Product
from checkout_sdk.common.enums import Country, Currency, PaymentSourceType
from checkout_sdk.payments.hosted.hosted_payments import HostedPaymentsSessionRequest
from checkout_sdk.payments.payments_previous import BillingInformation
from checkout_sdk.payments.payments import ThreeDsRequest, ProcessingSettings, RiskRequest, ShippingDetails, PaymentRecipient
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

customer_request = CustomerRequest()
customer_request.email = 'email@docs.checkout.com'
customer_request.name = 'Name'

billing_information = BillingInformation()
billing_information.address = address
billing_information.phone = phone

shipping_details = ShippingDetails()
shipping_details.address = address
shipping_details.phone = phone

recipient = PaymentRecipient()
recipient.account_number = '123456789'
recipient.country = Country.ES
recipient.dob = '1985-05-18'
recipient.first_name = 'First'
recipient.last_name = 'Last'
recipient.zip = '12345'

product = Product()
product.name = 'Name'
product.quantity = 1
product.price = 10

three_ds_request = ThreeDsRequest()
three_ds_request.enabled = True
three_ds_request.attempt_n3d = False

processing_settings = ProcessingSettings()
processing_settings.aft = True

risk_request = RiskRequest()
risk_request.enabled = True

request = HostedPaymentsSessionRequest()
request.amount = 10
request.reference = 'reference'
request.currency = Currency.GBP
request.description = 'Payment for Gold Necklace'
request.customer = customer_request
request.shipping = shipping_details
request.billing = billing_information
request.recipient = recipient
request.processing = processing_settings
request.products = [product]
request.risk = risk_request
request.success_url = 'https://docs.checkout.com/payments/success'
request.failure_url = 'https://docs.checkout.com/payments/failure'
request.cancel_url = 'https://docs.checkout.com/payments/cancel'
request.locale = 'en-GB'
request.three_ds = three_ds_request
request.capture = True
request.allow_payment_methods = [PaymentSourceType.CARD, PaymentSourceType.KLARNA]

try:
    response = api.hosted_payments.create_hosted_payments_page_session(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /hosted-payments`

Create a Hosted Payments Page session and pass through all the payment information, like the amount, currency, country and reference.

To get started with our Hosted Payments Page, contact your solutions engineer or <a href="https://dashboard.checkout.com/support/new?topic=case_account_management_and_access&amp;issue=issue_account_changes" target="_blank">request support</a>.

> Body parameter

```json
{
  "amount": 1000,
  "currency": "GBP",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "payment_ip": "90.197.169.245",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "display_name": "The Jewelry Shop",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "customer": {
    "email": "ali.farid@example.com",
    "name": "Ali Farid",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "allow_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "risk": {
    "enabled": false
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "sender": {},
  "success_url": "https://example.com/payments/success",
  "cancel_url": "https://example.com/payments/cancel",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {},
  "locale": "ar",
  "3ds": {
    "enabled": false,
    "attempt_n3d": false,
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "capture": true,
  "capture_on": "2019-08-24T14:15:22Z",
  "instruction": {
    "purpose": "donations"
  },
  "payment_method_configuration": {
    "applepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    },
    "stored_card": {
      "customer_id": "string",
      "instrument_ids": [
        "string"
      ],
      "default_instrument_id": "string"
    }
  }
}
```

<h3 id="create-a-hosted-payments-page-session-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[HostedPaymentsRequest](#schemahostedpaymentsrequest)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "reference": "ORD-123A",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}
```

<h3 id="create-a-hosted-payments-page-session-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Created Hosted Payments Page|[HostedPaymentsResponse](#schemahostedpaymentsresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey
</aside>

## Get Hosted Payments Page details

<a id="opIdgetHostedPaymentsPageDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments.Hosted;

ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    HostedPaymentDetailsResponse response = await api.HostedPaymentsClient().GetHostedPaymentsPageDetails("hosted_payment_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Hosted.GetHostedPaymentsPageDetails("hosted_payment_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.hosted.HostedPaymentDetailsResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
        .staticKeys()
        .secretKey("secret_key")
        .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
        .build();

try {
    HostedPaymentDetailsResponse response = api.hostedPaymentsClient().getHostedPaymentsPageDetails("hosted_payment_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;

$api = CheckoutSdk::builder()
    ->previous()
    ->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

try {
    $response = $api->getHostedPaymentsClient()->getHostedPaymentsPageDetails("hosted_payment_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

try:
    response = api.hosted_payments.get_hosted_payments_page_details('hosted_payment_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /hosted-payments/{id}`

Retrieve details about a specific Hosted Payments Page using the ID returned when it was created. In the response, you will see the status of the Hosted Payments Page.<br><br>
For more information, see the <a target="_blank" href="https://www.checkout.com/docs/integrate/hosted-payments-page">Hosted Payments Page documentation</a>.

<h3 id="get-hosted-payments-page-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|any|true|none|

> Example responses

> Hosted Payments Page details retrieved successfully

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Payment Pending",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}
```

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Payment Received",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    },
    "payment": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_88cb4e671m1da22e9bbbyx"
    }
  }
}
```

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Expired",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}
```

<h3 id="get-hosted-payments-page-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Hosted Payments Page details retrieved successfully|[GetHostedPaymentsResponse](#schemagethostedpaymentsresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Hosted Payments Page not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-address-document-verification">Address Document Verification</h1>

Verify your users' addresses by checking their address documents.

## Create an address document verification

<a id="opIdcreate_address_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/address-document-verifications \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/address-document-verifications HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/address-document-verifications', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/address-document-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications";
      
      string json = @"{
  ""applicant_id"": ""aplt_tkoi5db4hryu5cei5vwoabr7we"",
  ""user_journey_id"": ""usj_tkoi5db4hryu5cei5vwoabr7we"",
  ""declared_data"": {
    ""name"": ""Hannah Bret""
  }
}";
      AdvAddressDocumentVerification content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(AdvAddressDocumentVerification content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(AdvAddressDocumentVerification content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /address-document-verifications`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an address document verification for an applicant.

> Body parameter

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  }
}
```

<h3 id="create-an-address-document-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[AdvAddressDocumentVerification](#schemaadvaddressdocumentverification)|true|none|

> Example responses

> Address document verification created successfully

```json
{
  "id": "adv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  },
  "status": "created",
  "response_codes": [],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

> 400 Response

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "string"
  ]
}
```

<h3 id="create-an-address-document-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Address document verification created successfully|[AdvAddressDocumentVerificationOutput](#schemaadvaddressdocumentverificationoutput)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an address document verification

<a id="opIdretrieve_address_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /address-document-verifications/{address_document_verification_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of an existing address document verification.

<h3 id="get-an-address-document-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|

> Example responses

> Address document verification retrieved successfully

```json
{
  "id": "adv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  },
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "risk_labels": [
    "risky_document_format"
  ],
  "address_document": {
    "document_type": "utility_bill",
    "issuer": "EDF Energy",
    "full_names": [
      "Hannah Bret"
    ],
    "issue_date": "2025-01-15",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="get-an-address-document-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Address document verification retrieved successfully|[AdvAddressDocumentVerificationOutput](#schemaadvaddressdocumentverificationoutput)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Anonymize an address document verification

<a id="opIdanonymize_address_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/anonymize";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /address-document-verifications/{address_document_verification_id}/anonymize`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Remove the personal data from an address document verification.

<h3 id="anonymize-an-address-document-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|

> Example responses

> Personal data removed successfully

```json
{
  "id": "adv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="anonymize-an-address-document-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Personal data removed successfully|[AdvAddressDocumentVerificationOutput](#schemaadvaddressdocumentverificationoutput)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Create an address document verification attempt

<a id="opIdcreate_address_document_verification_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

```

```javascript
const inputBody = '{
  "document": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts";
      
      string json = @"{
  ""document"": ""data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n""
}";
      AdvAttemptRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(AdvAttemptRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(AdvAttemptRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /address-document-verifications/{address_document_verification_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an address document verification attempt.

If you've previously created an attempt for this verification, the [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses) must be one of the following:

- `created`
- `retry_required`

If you create a new attempt while the status is any other value, you receive a `409 Conflict` response.

Images must not exceed 10MB in size and must be in one of the following formats:

- `JPEG`
- `PDF`
- `PNG`

> Body parameter

```yaml
document: |
  data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…

```

<h3 id="create-an-address-document-verification-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|
|body|body|[AdvAttemptRequest](#schemaadvattemptrequest)|false|none|

> Example responses

> Address document verification attempt created successfully

```json
{
  "id": "adva_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "quality_checks_in_progress",
  "response_codes": [],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts/adva_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="create-an-address-document-verification-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Address document verification attempt created successfully|[AdvAttemptResponse](#schemaadvattemptresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Conflict|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get address document verification attempts

<a id="opIdlist_attempts_address_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /address-document-verifications/{address_document_verification_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of all attempts for a specific address document verification.

<h3 id="get-address-document-verification-attempts-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|
|skip|query|integer|false|The number of attempts to skip.|
|limit|query|integer|false|The maximum number of attempts to return.|

> Example responses

> Address document verification attempts retrieved successfully

```json
{
  "total_count": 1,
  "skip": 0,
  "limit": 10,
  "data": [
    {
      "id": "adva_tkoi5db4hryu5cei5vwoabr7we",
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z",
      "status": "completed",
      "response_codes": [
        {
          "code": 10000,
          "summary": "approved"
        }
      ],
      "_links": {
        "self": {
          "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts/adva_tkoi5db4hryu5cei5vwoabr7we"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts?skip=0&limit=10"
    },
    "next": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts?skip=10&limit=10"
    },
    "previous": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts?skip=0&limit=10"
    }
  }
}
```

<h3 id="get-address-document-verification-attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Address document verification attempts retrieved successfully|[AdvAttemptResponseList](#schemaadvattemptresponselist)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an address document verification attempt

<a id="opIdget_address_document_verification_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of a specific attempt for an address document verification.

<h3 id="get-an-address-document-verification-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|
|attempt_id|path|string|true|The attempt's unique identifier.|

> Example responses

> Address document verification attempt retrieved successfully

```json
{
  "id": "adva_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "completed",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts/adva_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="get-an-address-document-verification-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Address document verification attempt retrieved successfully|[AdvAttemptResponse](#schemaadvattemptresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get address document verification attempt assets

<a id="opIdget_address_document_verification_attempt_assets"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the assets (the document image) uploaded for an address document verification attempt.

Results are paginated. Use the `skip` and `limit` query parameters to navigate through pages.

<h3 id="get-address-document-verification-attempt-assets-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|
|attempt_id|path|[AdvAttemptId](#schemaadvattemptid)|true|The attempt's unique identifier.|
|skip|query|integer|false|The number of assets to skip.|
|limit|query|integer|false|The maximum number of assets to return.|

> Example responses

> Address document verification attempt assets retrieved successfully

```json
{
  "total_count": 1,
  "skip": 0,
  "limit": 10,
  "data": [
    {
      "type": "document",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/address_document.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts/adva_tkoi5db4hryu5cei5vwoabr7we/assets"
    },
    "next": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts/adva_tkoi5db4hryu5cei5vwoabr7we/assets?..."
    },
    "previous": {
      "href": "https://identity-verification.checkout.com/address-document-verifications/adv_tkoi5db4hryu5cei5vwoabr7we/attempts/adva_tkoi5db4hryu5cei5vwoabr7we/assets?..."
    }
  }
}
```

<h3 id="get-address-document-verification-attempt-assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Address document verification attempt assets retrieved successfully|[AdvAttemptAssets](#schemaadvattemptassets)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get address document verification report

<a id="opIdpdf_address_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/address-document-verifications/{address_document_verification_id}/pdf-report";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /address-document-verifications/{address_document_verification_id}/pdf-report`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the report for an address document verification in PDF format.

The report is only available when the [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses) is `approved` or `declined`, and you've received an address document verification report created webhook.

<h3 id="get-address-document-verification-report-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|address_document_verification_id|path|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|The address document verification's unique identifier.|

> Example responses

> Address document verification report retrieved successfully

```json
{
  "pdf_report": "https://www.example.com/reports/adv_tkoi5db4hryu5cei5vwoabr7we.pdf"
}
```

<h3 id="get-address-document-verification-report-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Address document verification report retrieved successfully|[IdvPdf](#schemaidvpdf)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-instruments">Instruments</h1>

Create and manage your card and bank account payment instruments.

## Create an instrument

<a id="opIdcreateAnInstrument"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Instruments.Create;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CreateTokenInstrumentRequest request = new CreateTokenInstrumentRequest
{
    Token = "tok_asoto22g2fsu7prwomy12sgfsa",
    AccountHolder = new AccountHolder()
    {
        FirstName = "FirstName",
        LastName = "LastName",
        BillingAddress = new Address()
        {
            AddressLine1 = "123 High St.",
            AddressLine2 = "Flat 456",
            City = "London",
            State = "GB",
            Zip = "SW1A 1AA",
            Country = CountryCode.GB
        },
        Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
    },
    Customer = new CreateCustomerInstrumentRequest()
    {
        Email = "email@docs.checkout.com",
        Name = "FirstName LastName",
        Phone = new Phone() {CountryCode = "1", Number = "4155552671"},
        Default = true
    }
};

try
{
    CreateInstrumentResponse response = await api.InstrumentsClient().Create(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/instruments/nas"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := nas.NewCreateTokenInstrumentRequest()
request.Token = "token"
request.AccountHolder = &common.AccountHolder{
	FirstName: "FirstName",
	LastName:  "LastName",
	BillingAddress: &common.Address{
		AddressLine1: "123 High St.",
		AddressLine2: "Flat 456",
		City:         "London",
		State:        "GB",
		Zip:          "SW1A 1AA",
		Country:      common.GB,
	},
	Phone: &common.Phone{
		CountryCode: "1",
		Number:      "415 555 2671",
	},
}
request.Customer = &nas.CreateCustomerInstrumentRequest{Id: "customer_id"}

response, err := api.Instruments.Create(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.AccountHolder;
import com.checkout.common.Address;
import com.checkout.common.CountryCode;
import com.checkout.common.Phone;
import com.checkout.instruments.create.CreateCustomerInstrumentRequest;
import com.checkout.instruments.create.CreateInstrumentResponse;
import com.checkout.instruments.create.CreateInstrumentTokenRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

CreateInstrumentTokenRequest request = CreateInstrumentTokenRequest.builder()
    .token("token")
    .accountHolder(AccountHolder.builder()
        .firstName("FirstName")
        .lastName("LastName")
        .phone(Phone.builder().countryCode("1").number("415 555 2671").build())
        .billingAddress(Address.builder()
            .addressLine1("123 High St.")
            .addressLine2("Flat 456")
            .city("London")
            .state("GB")
            .zip("SW1A 1AA")
            .country(CountryCode.GB)
            .build())
        .build())
    .customer(CreateCustomerInstrumentRequest.builder()
        .id("customer_id")
        .build())
    .build();

try {
    CreateInstrumentResponse response = api.instrumentsClient().create(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const instrument = await cko.instruments.create({
		// infered type "token",
		token: 'tok_bzi43qc6jeee5mmnfo4gnsnera', // Generated by Checkout.Frames
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\AccountHolder;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Phone;
use Checkout\Environment;
use Checkout\Instruments\Create\CreateCustomerInstrumentRequest;
use Checkout\Instruments\Create\CreateTokenInstrumentRequest;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Vault])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$accountHolder = new AccountHolder();
$accountHolder->first_name = "John";
$accountHolder->last_name = "Smith";
$accountHolder->phone = $phone;
$accountHolder->billing_address = $address;

$createCustomerInstrumentRequest = new CreateCustomerInstrumentRequest();
$createCustomerInstrumentRequest->id = "customer_id";

$request = new CreateTokenInstrumentRequest();
$request->token = "token";
$request->account_holder = $accountHolder;
$request->customer = $createCustomerInstrumentRequest;

try {
    $response = $api->getInstrumentsClient()->create($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone, AccountHolder
from checkout_sdk.environment import Environment
from checkout_sdk.instruments.instruments import CreateTokenInstrumentRequest, CreateCustomerInstrumentRequest
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) 
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

customer = CreateCustomerInstrumentRequest()
customer.email = 'email@docs.checkout.com'
customer.name = 'Name'
customer.default = True
customer.phone = phone

account_holder = AccountHolder()
account_holder.first_name = 'First'
account_holder.last_name = 'Last'
account_holder.phone = phone

request = CreateTokenInstrumentRequest()
request.token = 'token'
request.account_holder = account_holder
request.customer = customer

try:
    response = api.instruments.create(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
# Bad arguments

except CheckoutAuthorizationException as err:
# Invalid authorization
```

`POST /instruments`

Create a payment instrument like card, bank, ach or sepa to use for future payments and payouts. 

The parameters you need to provide when creating a bank account payment instrument depend on the account's country and currency. See the <a href="https://www.checkout.com/docs/payments/request-payouts/bank-payouts/payout-formatting" target="_blank">payout formatting documentation</a>, or use the `GET /validation/bank-accounts/{country}/{currency}` <a href="https://api-reference.checkout.com/#operation/getBankAccountFields">endpoint</a>.

> Body parameter

```json
{
  "type": "bank_account",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "processing_channel_id": "pc_u2l6xz5joigedmk7g5vxzt7rqy",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}
```

<h3 id="create-an-instrument-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[StoreInstrumentRequest](#schemastoreinstrumentrequest)|true|none|

> Example responses

> Existing instrument for customer and card details found

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_number": "13654567455",
  "bank_code": "123-456"
}
```

```json
{
  "type": "card",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK"
}
```

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

> Instrument created successfully

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_number": "13654567455",
  "bank_code": "123-456"
}
```

```json
{
  "type": "card",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK"
}
```

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

> 409 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="create-an-instrument-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Existing instrument for customer and card details found|[StoreInstrumentResponse](#schemastoreinstrumentresponse)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Instrument created successfully|[StoreInstrumentResponse](#schemastoreinstrumentresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A concurrent update conflict occurred. Retry the request.|Inline|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<h3 id="create-an-instrument-responseschema">Response Schema</h3>

Status Code **409**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:instruments ), ApiSecretKey
</aside>

## Get instrument details

<a id="opIdgetInstrumentDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Instruments.Get;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    GetInstrumentResponse response = await api.InstrumentsClient().Get("instrument_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Instruments.Get("instrument_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.instruments.get.GetCardInstrumentResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    // Or GetBankAccountInstrumentResponse
    GetCardInstrumentResponse response = (GetCardInstrumentResponse) api.instrumentsClient().get("instrument_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}

```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const instrument = await cko.instruments.get('src_udfsqsgpjykutgs26fiejgizau');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Vault])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getInstrumentsClient()->get("instrument_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) 
    .build()
)

try:
    response = api.instruments.get('instrument_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization

```

`GET /instruments/{id}`

Retrieve the details of a payment instrument.

<h3 id="get-instrument-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The instrument ID|

> Example responses

> Instrument retrieved successfully

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "currency": "GBP",
  "country": "GB"
}
```

```json
{
  "type": "card",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "John Test",
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "regulated_indicator": false
}
```

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "modified_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "type": "B2B",
    "account_number": "FR2810096000509685512959O86",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "recurring",
    "mandate_id": "1234567890",
    "date_of_signature": "2021-01-01"
  },
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  }
}
```

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "modified_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "account_type": "savings",
    "account_number": "4099999992",
    "bank_code": "211370545",
    "currency": "USD",
    "country": "US"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Smith Enterprises",
    "type": "individual"
  }
}
```

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "account_number": "86753246",
    "bank_code": "040004",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "Recurring"
  },
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "billing_address": {
      "country": "GB"
    }
  }
}
```

<h3 id="get-instrument-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instrument retrieved successfully|[RetrieveInstrumentResponse](#schemaretrieveinstrumentresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Instrument not found|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:instruments ), ApiSecretKey
</aside>

## Update an instrument

<a id="opIdupdateInstrument"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Instruments.Update;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

UpdateInstrumentRequest request = new UpdateCardInstrumentRequest
{
    ExpiryMonth = 10,
    ExpiryYear = 2027,
    Name = "FirstName LastName",
    AccountHolder = new AccountHolder()
    {
        FirstName = "FirstName",
        LastName = "LastName",
        BillingAddress = new Address()
        {
            AddressLine1 = "123 High St.",
            AddressLine2 = "Flat 456",
            City = "London",
            State = "GB",
            Zip = "SW1A 1AA",
            Country = CountryCode.GB
        },
        Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
    },
    Customer = new UpdateCustomerRequest() {Id = "cus_y3oqhf46pyzuxjbcn2giaqnb44", Default = true}
};

try
{
    UpdateInstrumentResponse response = await api.InstrumentsClient().Update("instrument_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/instruments/nas"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := nas.NewUpdateCardInstrumentRequest()
request.ExpiryMonth = 10
request.ExpiryYear = 2027
request.Name = "name"
request.Customer = &common.UpdateCustomerRequest{
	Id:      "customer_id",
	Default: true,
}
request.AccountHolder = &common.AccountHolder{
	FirstName: "FirstName",
	LastName:  "LastName",
	BillingAddress: &common.Address{
		AddressLine1: "123 High St.",
		AddressLine2: "Flat 456",
		City:         "London",
		State:        "GB",
		Zip:          "SW1A 1AA",
		Country:      common.GB,
	},
	Phone: &common.Phone{
		CountryCode: "1",
		Number:      "415 555 2671",
	},
}

response, err := api.Instruments.Update("instrument_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.AccountHolder;
import com.checkout.common.Address;
import com.checkout.common.CountryCode;
import com.checkout.common.Phone;
import com.checkout.common.UpdateCustomerRequest;
import com.checkout.instruments.update.UpdateInstrumentCardRequest;
import com.checkout.instruments.update.UpdateInstrumentResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

UpdateInstrumentCardRequest updateRequest = UpdateInstrumentCardRequest.builder()
    .expiryMonth(10)
    .expiryYear(2027)
    .name("name")
    .customer(UpdateCustomerRequest.builder().id("customer_id").defaultCustomer(true).build())
    .accountHolder(AccountHolder.builder()
        .firstName("FirstName")
        .lastName("LastName")
        .phone(Phone.builder().countryCode("+1").number("415 555 2671").build())
        .billingAddress(Address.builder()
            .addressLine1("123 High St.")
            .addressLine2("Flat 456")
            .city("London")
            .state("GB")
            .zip("SW1A 1AA")
            .country(CountryCode.GB)
            .build())
        .build())
    .build();

try {
    UpdateInstrumentResponse response = api.instrumentsClient().update("instrument_id", updateRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const instrumentResponse = await cko.instruments.update('src_udfsqsgpjykutgs26fiejgizau', {
		expiry_year: 2030,
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\Instruments\Update\UpdateTokenInstrumentRequest;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Vault])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new UpdateTokenInstrumentRequest();
$request->token = "new_token";

try {
    $response = $api->getInstrumentsClient()->update("instrument_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone, Address, AccountHolder, UpdateCustomerRequest
from checkout_sdk.common.enums import Country
from checkout_sdk.environment import Environment
from checkout_sdk.instruments.instruments import UpdateCardInstrumentRequest
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) 
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

account_holder = AccountHolder()
account_holder.first_name = "First"
account_holder.last_name = "Last"
account_holder.phone = phone
account_holder.billing_address = address

update_customer_request = UpdateCustomerRequest()
update_customer_request.id = "customer_id"
update_customer_request.default = True

request = UpdateCardInstrumentRequest()
request.name = 'New Name'
request.expiry_year = 2027
request.expiry_month = 10
request.account_holder = account_holder
request.customer = update_customer_request

try:
    response = api.instruments.update('instrument_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PATCH /instruments/{id}`

Update the details of a payment instrument.

> Body parameter

```json
{
  "type": "string",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Mr. J Smith",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "default": true
  }
}
```

<h3 id="update-an-instrument-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The instrument ID|
|body|body|[UpdateInstrumentRequest](#schemaupdateinstrumentrequest)|true|none|

> Example responses

> Instrument updated successfully

```json
{
  "type": "card",
  "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
}
```

```json
{
  "type": "bank_account",
  "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
}
```

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}
```

> 409 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="update-an-instrument-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Instrument updated successfully|[UpdateInstrumentResponse](#schemaupdateinstrumentresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Instrument not found or not associated with client|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A concurrent update conflict occurred. Call the [Get customer details](/tag/Customers#operation/getCustomerDetails) to retrieve the latest state before retrying.|Inline|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<h3 id="update-an-instrument-responseschema">Response Schema</h3>

Status Code **409**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:instruments ), ApiSecretKey
</aside>

## Delete an instrument

<a id="opIddeleteInstrument"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    EmptyResponse response = await api.InstrumentsClient().Delete("instrument_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Instruments.Delete("instrument_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    EmptyResponse response = api.instrumentsClient().delete("instrumentId").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const deleteOutcome = await cko.instruments.delete(instrument.id);
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Vault])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getInstrumentsClient()->delete("instrument_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) 
    .build()
)

try:
    response = api.instruments.delete('instrument_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`DELETE /instruments/{id}`

Delete a payment instrument.

<h3 id="delete-an-instrument-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ID of the payment instrument to be deleted|

> Example responses

> 409 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="delete-an-instrument-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Instrument deleted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Instrument not found or not associated with client|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A concurrent update conflict occurred. Retry the request.|Inline|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<h3 id="delete-an-instrument-responseschema">Response Schema</h3>

Status Code **409**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:instruments ), ApiSecretKey
</aside>

## Get bank account field formatting

<a id="opIdgetBankAccountFields"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Instruments.Get;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.PayoutsBankDetails)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

BankAccountFieldQuery request = new BankAccountFieldQuery
{
    AccountHolderType = AccountHolderType.Individual, PaymentNetwork = PaymentNetwork.Local
};

try
{
    BankAccountFieldResponse response = await api.InstrumentsClient()
        .GetBankAccountFieldFormatting(CountryCode.GB, Currency.GBP, request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	instruments "github.com/checkout/checkout-sdk-go/instruments/nas"
)

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.PayoutsBankDetails}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

query := instruments.QueryBankAccountFormatting{
	AccountHolderType: common.Individual,
	PaymentNetwork:    instruments.Local,
}

response, err := api.Instruments.GetBankAccountFieldFormatting("GB", "GBP", query)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-javaç
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.AccountHolderType;
import com.checkout.common.CountryCode;
import com.checkout.common.Currency;
import com.checkout.instruments.get.BankAccountFieldQuery;
import com.checkout.instruments.get.BankAccountFieldResponse;
import com.checkout.instruments.get.PaymentNetwork;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.PAYOUTS_BANK_DETAILS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

BankAccountFieldQuery query = BankAccountFieldQuery.builder()
    .accountHolderType(AccountHolderType.INDIVIDUAL)
    .paymentNetwork(PaymentNetwork.LOCAL)
    .build();

try {
    BankAccountFieldResponse response = api.instrumentsClient().getBankAccountFieldFormatting(CountryCode.GB, Currency.GBP, query).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const bank = await cko.instruments.getBankAccountFieldFormatting('GB', 'GBP');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\AccountHolderType;
use Checkout\Common\Country;
use Checkout\Common\Currency;
use Checkout\Environment;
use Checkout\Instruments\Get\BankAccountFieldQuery;
use Checkout\Instruments\Get\PaymentNetwork;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$PayoutsBankDetails])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new BankAccountFieldQuery();
$request->payment_network = PaymentNetwork::$local;
$request->account_holder_type = AccountHolderType::$individual;

try {
    $response = $api->getInstrumentsClient()->getBankAccountFieldFormatting(Country::$GB, Currency::$GBP, $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.instruments.instruments import BankAccountFieldQuery, AccountHolderType, PaymentNetwork
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.enums import Country, Currency
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.PAYOUTS_BANK_DETAILS]) 
    .build()
)

query = BankAccountFieldQuery()
query.account_holder_type = AccountHolderType.INDIVIDUAL
query.payment_network = PaymentNetwork.LOCAL

try:
    response = api.instruments.get_bank_account_field_formatting(Country.GB, Currency.GBP, query)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /validation/bank-accounts/{country}/{currency}`

Returns the bank account field formatting required to create bank account instruments or perform payouts for the specified country and currency.

<h3 id="get-bank-account-field-formatting-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|country|path|string|true|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a>|
|currency|path|string|true|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a>|
|account-holder-type|query|string|false|The type of account holder that will be used to filter the fields returned|
|payment-network|query|string|false|The banking network that will be used to filter the fields returned|

#### Detailed descriptions

**country**: The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a>

**currency**: The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a>

**account-holder-type**: The type of account holder that will be used to filter the fields returned

**payment-network**: The banking network that will be used to filter the fields returned

#### Enumerated Values

|Parameter|Value|
|---|---|
|account-holder-type|individual|
|account-holder-type|corporate|
|account-holder-type|government|
|payment-network|local|
|payment-network|sepa|
|payment-network|fps|
|payment-network|ach|
|payment-network|fedwire|
|payment-network|swift|

> Example responses

> 200 Response

```json
{
  "sections": [
    {
      "name": "Account Details",
      "fields": [
        {
          "id": "iban",
          "type": "string",
          "display": "IBAN",
          "description": "Number (which can contain letters) that identifies the account",
          "section": "account",
          "required": true,
          "validation_regex": "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,18}$",
          "min_length": 22,
          "max_length": 22
        },
        {
          "id": "account_holder.first_name",
          "type": "string",
          "display": "First name",
          "description": "The account holder's first name",
          "section": "account",
          "required": true
        },
        {
          "id": "account_holder.last_name",
          "type": "string",
          "display": "First name",
          "description": "The account holder's last name",
          "section": "account",
          "required": true
        }
      ]
    }
  ]
}
```

<h3 id="get-bank-account-field-formatting-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Bank account fields retrieved successfully|[BankAccountFields](#schemabankaccountfields)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Fields not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: payouts:bank-details )
</aside>

<h1 id="checkout-com-api-reference-network-tokens">Network Tokens</h1>

Provision network tokens and cryptograms.

## Provision a Network Token

<a id="opIdprovisionNetworkToken"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/network-tokens \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/network-tokens HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "source": {
    "type": "id",
    "id": "src_wmlfc3zyhqzehihu7giusaaawu"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/network-tokens',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/network-tokens',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/network-tokens', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/network-tokens', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/network-tokens");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/network-tokens", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/network-tokens";
      
      string json = @"{
  ""source"": {
    ""type"": ""id"",
    ""id"": ""src_wmlfc3zyhqzehihu7giusaaawu""
  }
}";
      NetworkTokensRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(NetworkTokensRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(NetworkTokensRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /network-tokens`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p> Provisions a network token synchronously. If the merchant stores their cards with Checkout.com, then source ID can be used to request a network token for the given card. If the merchant does not store their cards with Checkout.com, then card details have to be provided.

> Body parameter

```json
{
  "source": {
    "type": "id",
    "id": "src_wmlfc3zyhqzehihu7giusaaawu"
  }
}
```

<h3 id="provision-a-network-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[NetworkTokensRequest](#schemanetworktokensrequest)|false|none|

> Example responses

> 200 Response

```json
{
  "card": {
    "last4": "6378",
    "expiry_month": "5",
    "expiry_year": "2025"
  },
  "network_token": {
    "id": "nt_xgu3isllqfyu7ktpk5z2yxbwna",
    "state": "active",
    "number": "5436424242424242",
    "expiry_month": "5",
    "expiry_year": "2025",
    "type": "vts",
    "payment_account_reference": "5001a9f027e5629d11e3949a0800a",
    "created_on": "2020-02-11T15:57:32.435+00:00",
    "modified_on": "2020-02-11T15:57:32.435+00:00"
  },
  "token_requestor_id": "1234567890",
  "token_scheme_id": "scheme_visa_001",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
    },
    "cryptogram": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
    },
    "card-art": {
      "href": "https://card-art.checkout.com/00340aa7bd3de35cb1048369450d8df4"
    }
  }
}
```

<h3 id="provision-a-network-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Responding with existing network token|[NetworkTokensResponse](#schemanetworktokensresponse)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Network token provisioned|[NetworkTokensResponse](#schemanetworktokensresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway|None|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway Timeout|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:network-tokens )
</aside>

## Get Network Token

<a id="opIdgetNetworkToken"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /network-tokens/{network_token_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p> Given network token ID, this endpoint returns network token details: DPAN, expiry date, state, TRID and also card 
details like last four and expiry date.

<h3 id="get-network-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|network_token_id|path|string|true|Unique token ID assigned by Checkout.com for each token|

> Example responses

> 200 Response

```json
{
  "card": {
    "last4": "6378",
    "expiry_month": "5",
    "expiry_year": "2025"
  },
  "network_token": {
    "id": "nt_xgu3isllqfyu7ktpk5z2yxbwna",
    "state": "active",
    "number": "5436424242424242",
    "expiry_month": "5",
    "expiry_year": "2025",
    "type": "vts",
    "payment_account_reference": "5001a9f027e5629d11e3949a0800a",
    "created_on": "2020-02-11T15:57:32.435+00:00",
    "modified_on": "2020-02-11T15:57:32.435+00:00"
  },
  "token_requestor_id": "1234567890",
  "token_scheme_id": "scheme_visa_001",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
    },
    "cryptogram": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
    },
    "card-art": {
      "href": "https://card-art.checkout.com/00340aa7bd3de35cb1048369450d8df4"
    }
  }
}
```

<h3 id="get-network-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Network Token details|[NetworkTokensRetrieveResponse](#schemanetworktokensretrieveresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Network Token not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway|None|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway Timeout|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:network-tokens )
</aside>

## Request a cryptogram

<a id="opIdprovisionCryptogram"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "transaction_type": "ecom"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/cryptograms";
      
      string json = @"{
  ""transaction_type"": ""ecom""
}";
      NetworkTokensCryptogramRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(NetworkTokensCryptogramRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(NetworkTokensCryptogramRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /network-tokens/{network_token_id}/cryptograms`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Using network token ID as an input, this endpoint returns token cryptogram.

> Body parameter

```json
{
  "transaction_type": "ecom"
}
```

<h3 id="request-a-cryptogram-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|network_token_id|path|string|true|Unique token ID assigned by Checkout.com for each token|
|body|body|[NetworkTokensCryptogramRequest](#schemanetworktokenscryptogramrequest)|false|none|

> Example responses

> 201 Response

```json
{
  "cryptogram": "AhJ3hnYAoAbVz5zg1e17MAACAAA=",
  "eci": "7",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
    },
    "network-token": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
    }
  }
}
```

<h3 id="request-a-cryptogram-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Cryptogram from the network token|[NetworkTokensCryptogramResponse](#schemanetworktokenscryptogramresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Network Token not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway|None|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway Timeout|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:network-tokens )
</aside>

## Permanently deletes a network token

<a id="opIddeleteNetworkToken"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "initiated_by": "token_requestor",
  "reason": "other"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/network-tokens/{network_token_id}/delete", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /network-tokens/{network_token_id}/delete`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p> This endpoint is for permanently deleting a network token.  A network token should be deleted when a payment instrument it is associated with is removed from file or if the security of the token has been compromised.

> Body parameter

```json
{
  "initiated_by": "token_requestor",
  "reason": "other"
}
```

<h3 id="permanently-deletes-a-network-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|network_token_id|path|string|true|Unique token ID assigned by Checkout.com for each token|
|body|body|[NetworkTokensRequestDelete](#schemanetworktokensrequestdelete)|false|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="permanently-deletes-a-network-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Ok|None|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Network token not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway. Error from scheme|None|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Timeout while waiting for a scheme response|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:network-tokens )
</aside>

<h1 id="checkout-com-api-reference-payment-instruments">Payment instruments</h1>

Manage bank account payment instruments for your sub-entities.

## Get payment instrument details

<a id="opIdgetPlatformsPaymentInstrument"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Accounts.RetrievePaymentInstrumentDetails("entity_id", "payment_instrument_id")
if err != nil {
	return nil, err
}

return response, nil
```

`GET /accounts/entities/{entityId}/payment-instruments/{id}`

Retrieve the details of a specific payment instrument used for sub-entity payouts.

<h3 id="get-payment-instrument-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The sub-entity's ID.|
|id|path|string|true|The payment instrument's ID.|

> Example responses

> Payment instrument details

```json
{
  "id": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga",
  "label": "Bob's Bank Account",
  "type": "bank_account",
  "currency": "GBP",
  "country": "GB",
  "document": {
    "type": "bank_statement",
    "file_id": "file_wxglze3wwywujg4nna5fb7ldli"
  },
  "status": "verified",
  "instrument_id": "src_pdasnoaxrtoevpyh3opgaxcrti"
}
```

```json
{
  "id": "ppi_cwfekfw2d7mmcto5ql4lpjgrxq",
  "instrument_id": "src_jpu3ev6prk7utb5jonqgvvsshm",
  "label": "Carol's Card",
  "country": "GB",
  "currency": "GBP",
  "status": "verified",
  "type": "card_token"
}
```

<h3 id="get-payment-instrument-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment instrument details|[PlatformsPaymentInstrumentRead](#schemaplatformspaymentinstrumentread)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Update payment instrument details

<a id="opIdupdatePlatformsPaymentInstrument"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/accounts"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := accounts.UpdatePaymentInstrumentRequest{
	Label:   "Peter's Personal Account",
	Default: true,
}

response, err := api.Accounts.UpdatePaymentInstrumentDetails("entity_id", "payment_instrument_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

`PATCH /accounts/entities/{entityId}/payment-instruments/{id}`

Set an existing payment instrument as default. This will make it the destination instrument when a scheduled payout is made. You can also update the label of a payment instrument.

> Body parameter

```json
{
  "label": "Peter's Personal Account",
  "default": true,
  "headers": {
    "if-match": "Y3Y9MCZydj0w"
  }
}
```

<h3 id="update-payment-instrument-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[PlatformsPaymentInstrumentUpdate](#schemaplatformspaymentinstrumentupdate)|true|none|
|entityId|path|string|true|The sub-entity's ID.|
|id|path|string|true|The payment instrument's ID.|

> Example responses

> 200 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  },
  "id": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga"
}
```

<h3 id="update-payment-instrument-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment instrument updated successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity|[ValidationError](#schemavalidationerror)|
|428|[Precondition Required](https://tools.ietf.org/html/rfc6585#section-3)|Precondition required|[PreconditionRequiredError](#schemapreconditionrequirederror)|

<h3 id="update-payment-instrument-details-responseschema">Response Schema</h3>

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Add a payment instrument

<a id="opIdaddPlatformsPaymentInstrument"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/accounts"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/instruments"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := accounts.PaymentInstrumentRequest{
	Label:              "Bob's Bank Account",
	Type:               instruments.BankAccount,
	Currency:           common.GBP,
	Country:            common.GB,
	DefaultDestination: true,
	Document: &accounts.InstrumentDocument{
		Type:   "document",
		FileId: "file",
	},
	InstrumentDetails: &accounts.InstrumentDetailsFasterPayments{
		AccountNumber: "123456789",
		BankCode:      "bank_code",
	},
}

response, err := api.Accounts.CreatePaymentInstrument("entity_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

`POST /accounts/entities/{id}/payment-instruments`

Create a bank account payment instrument for your sub-entity. You can use this payment instrument as a payout destination.

> Body parameter

```json
{
  "label": "Bob's Bank Account",
  "type": "bank_account",
  "currency": "GBP",
  "country": "GB",
  "instrument_details": {
    "account_number": "12345678",
    "bank_code": "050389"
  },
  "document": {
    "type": "bank_statement",
    "file_id": "file_wxglze3wwywujg4nna5fb7ldli"
  }
}
```

<h3 id="add-a-payment-instrument-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[PlatformsPaymentInstrumentCreate](#schemaplatformspaymentinstrumentcreate)|true|A JSON payload containing the payment instrument details.|
|id|path|string|true|The sub-entity's ID.|

> Example responses

> 201 Response

```json
{
  "id": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga"
}
```

<h3 id="add-a-payment-instrument-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Created|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="add-a-payment-instrument-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|string|false|none|none|

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Query payment instruments

<a id="opIdqueryPlatformsPaymentInstruments"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/accounts"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
	Builder().
	StaticKeys().
	WithSecretKey("secret_key").
	WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
	Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
	Builder().
	OAuth().
	WithClientCredentials("client_id", "client_secret").
	WithScopes([]string{configuration.Accounts}).
	WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
	Build()
if err != nil {
	return nil, err
}

query := accounts.PaymentInstrumentsQuery{Status: "pending"}

response, err := api.Accounts.QueryPaymentInstruments("entity_id", query)
if err != nil {
	return nil, err
}

return response, nil
```

`GET /accounts/entities/{id}/payment-instruments`

Fetch all of the payment instruments for a sub-entity. You can filter by `status` to identify `verified` instruments that are ready to be used for Payouts.

<h3 id="query-payment-instruments-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|status|query|[PlatformsPaymentInstrumentStatus](#schemaplatformspaymentinstrumentstatus)|false|none|
|id|path|string|true|The sub-entity's ID.|

#### Enumerated Values

|Parameter|Value|
|---|---|
|status|pending|
|status|verified|
|status|unverified|

> Example responses

> OK

```json
{
  "data": [
    {
      "id": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga",
      "label": "Bob's Bank Account",
      "type": "bank_account",
      "currency": "GBP",
      "country": "GB",
      "status": "verified",
      "instrument_id": "src_pdasnoaxrtoevpyh3opgaxcrti"
    },
    {
      "id": "ppi_yk7nmh5jypmqzw5kb6kshj2iiy",
      "label": "Bruno's Bank Account",
      "type": "bank_account",
      "currency": "EUR",
      "country": "FR",
      "status": "pending"
    }
  ]
}
```

<h3 id="query-payment-instruments-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|[PlatformsPaymentInstrumentQuery](#schemaplatformspaymentinstrumentquery)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-payment-links">Payment Links</h1>

Create a Payment Link to accept and process payment details.

## Create a Payment Link

<a id="opIdcreateAPaymentLinkSession"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Payments;
using Checkout.Payments.Links;

ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

PaymentLinkRequest request = new PaymentLinkRequest
{
    Amount = 10,
    Currency = Currency.GBP,
    PaymentType = PaymentType.Regular,
    PaymentIp = "192.168.0.1",
    BillingDescriptor = new BillingDescriptor() {Name = "string", City = "string"},
    Reference = "reference",
    Description = "Payment for Gold Necklace",
    ExpiresIn = 604800,
    Customer = new CustomerRequest() {Email = "email@docs.checkout.com", Name = "FirstName LastName"},
    Shipping =
        new ShippingDetails()
        {
            Address = new Address()
            {
                AddressLine1 = "123 High St.",
                AddressLine2 = "Flat 456",
                City = "London",
                State = "GB",
                Zip = "SW1A 1AA",
                Country = CountryCode.GB
            },
            Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
        },
    Billing =
        new BillingInformation()
        {
            Address = new Address()
            {
                AddressLine1 = "123 High St.",
                AddressLine2 = "Flat 456",
                City = "London",
                State = "GB",
                Zip = "SW1A 1AA",
                Country = CountryCode.GB
            },
            Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
        },
    Recipient =
        new PaymentRecipient()
        {
            DateOfBirth = "1985-05-15",
            AccountNumber = "5555554444",
            Zip = "SW1A",
            LastName = "LastName",
        },
    Processing = new ProcessingSettings() {Aft = true},
    Products = new List<Product>() {new Product() {Name = "Gold Necklace", Quantity = 1, Price = 1000}},
    Metadata = new Dictionary<string, object>(),
    ThreeDs = new ThreeDsRequest() {Enabled = false, AttemptN3D = false},
    Risk = new RiskRequest() {Enabled = false},
    ReturnUrl = "https://example.com/payments/success",
    Locale = "en-GB",
    Capture = true,
    CaptureOn = new DateTime()
};

try
{
    PaymentLinkResponse response = await api.PaymentLinksClient().Create(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments"
	"github.com/checkout/checkout-sdk-go/payments/links"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

address := common.Address{
	AddressLine1: "123 High St.",
	AddressLine2: "Flat 456",
	City:         "London",
	State:        "GB",
	Zip:          "SW1A 1AA",
	Country:      common.GB,
}

phone := common.Phone{
	CountryCode: "1",
	Number:      "415 555 2671",
}

request := links.PaymentLinkRequest{
	Amount:      10,
	Currency:    common.GBP,
	PaymentType: payments.Regular,
	BillingDescriptor: &payments.BillingDescriptor{
		Name: "Name",
		City: "London",
	},
	Reference:   "Reference",
	Description: "Description",
	ExpiresIn:   604800,
	Customer: &common.CustomerRequest{
		Email: "email@docs.checkout.com",
		Name:  "Name",
	},
	Shipping: &payments.ShippingDetails{
		Address: &address,
		Phone:   &phone,
	},
	Billing: &payments.BillingInformation{
		Address: &address,
		Phone:   &phone,
	},
	Recipient: &payments.PaymentRecipient{
		DateOfBirth:   "1985-05-15",
		AccountNumber: "999999999",
		Zip:           "12345",
		LastName:      "LastName",
	},
	Processing: &payments.ProcessingSettings{Aft: true},
	Products: []payments.Product{
		{
			Name:     "name",
			Quantity: 1,
			Price:    200,
		},
	},
	Risk:      &payments.RiskRequest{Enabled: false},
	ReturnUrl: "https://docs.checkout.com/return",
	Locale:    "en-GB",
	ThreeDs: &payments.ThreeDsRequest{
		Enabled:            false,
		AttemptN3D:         false,
		ChallengeIndicator: common.NoChallengeRequested,
	},
	Capture:   true,
	CaptureOn: time.Now().AddDate(0, 0, 30),
}

response, err := api.Links.CreatePaymentLink(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.common.Address;
import com.checkout.common.ChallengeIndicator;
import com.checkout.common.CountryCode;
import com.checkout.common.Currency;
import com.checkout.common.CustomerRequest;
import com.checkout.common.Phone;
import com.checkout.common.Product;
import com.checkout.payments.BillingDescriptor;
import com.checkout.payments.BillingInformation;
import com.checkout.payments.PaymentRecipient;
import com.checkout.payments.PaymentType;
import com.checkout.payments.ProcessingSettings;
import com.checkout.payments.RiskRequest;
import com.checkout.payments.ShippingDetails;
import com.checkout.payments.ThreeDSRequest;
import com.checkout.payments.links.PaymentLinkRequest;
import com.checkout.payments.links.PaymentLinkResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

PaymentLinkRequest paymentLinksRequest = PaymentLinkRequest.builder()
    .amount(10L)
    .currency(Currency.GBP)
    .reference("reference")
    .description("description")
    .expiresIn(604800)
    .customer(new CustomerRequest(null, "email@docs.checkout.com", "Name", null))
    .shipping(ShippingDetails.builder()
        .address(Address.builder()
        .addressLine1("123 High St.")
        .addressLine2("Flat 456")
        .city("London")
        .state("GB")
        .zip("SW1A 1AA")
        .country(CountryCode.GB)
        .build())
    .phone(Phone.builder().countryCode("1").number("415 555 2671").build())
        .build())
    .billing(BillingInformation.builder()
        .address(Address.builder()
        .addressLine1("123 High St.")
        .addressLine2("Flat 456")
        .city("London")
        .state("GB")
        .zip("SW1A 1AA")
        .country(CountryCode.GB)
        .build())
    .phone(Phone.builder().countryCode("1").number("415 555 2671").build())
        .build())
    .recipient(PaymentRecipient.builder()
        .accountNumber("999999999")
        .dateOfBirth("1985-05-15")
        .lastName("LastName")
        .zip("12345")
        .build())
    .processing(ProcessingSettings.builder()
        .aft(true)
        .build())
    .capture(true)
    .captureOn(Instant.now().plus(30, ChronoUnit.DAYS))
    .products(Collections.singletonList(Product.builder()
        .name("name")
        .quantity(1L)
        .price(200L)
        .build()))
    .threeDS(ThreeDSRequest.builder()
        .enabled(Boolean.FALSE)
        .attemptN3D(Boolean.FALSE)
        .challengeIndicator(ChallengeIndicator.NO_CHALLENGE_REQUESTED)
        .build())
    .risk(new RiskRequest(Boolean.FALSE))
    .returnUrl("https://docs.checkout.com/success")
    .locale("en-GB")
    .paymentType(PaymentType.REGULAR)
    .billingDescriptor(BillingDescriptor.builder()
        .city("London")
        .name("name")
        .build())
    .build();

try {
    PaymentLinkResponse response = api.paymentLinksClient().createPaymentLink(paymentLinksRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Currency;
use Checkout\Common\CustomerRequest;
use Checkout\Common\Phone;
use Checkout\Common\Product;
use Checkout\Environment;
use Checkout\Payments\BillingInformation;
use Checkout\Payments\Links\PaymentLinkRequest;
use Checkout\Payments\PaymentRecipient;
use Checkout\Payments\ProcessingSettings;
use Checkout\Payments\RiskRequest;
use Checkout\Payments\ShippingDetails;
use Checkout\Payments\ThreeDsRequest;

$api = CheckoutSdk::builder()->staticKeys()
        ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
        ->secretKey("secret_key")
        ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$customerRequest = new CustomerRequest();
$customerRequest->email = "";
$customerRequest->name = "Name";

$billingInformation = new BillingInformation();
$billingInformation->address = $address;
$billingInformation->phone = $phone;

$shippingDetails = new ShippingDetails();
$shippingDetails->address = $address;
$shippingDetails->phone = $phone;

$recipient = new PaymentRecipient();
$recipient->account_number = "1234567";
$recipient->dob = "1985-05-15";
$recipient->last_name = "Last";
$recipient->zip = "12345";

$product = new Product();
$product->name = "Product";
$product->quantity = 1;
$product->price = 10;

$products = array($product);

$theeDsRequest = new ThreeDsRequest();
$theeDsRequest->enabled = false;
$theeDsRequest->attempt_n3d = false;

$processing = new ProcessingSettings();
$processing->aft = true;

$risk = new RiskRequest();
$risk->enabled = false;

$request = new PaymentLinkRequest();
$request->amount = 1000;
$request->reference = "reference";
$request->currency = Currency::$GBP;
$request->description = "Description";
$request->customer = $customerRequest;
$request->shipping = $shippingDetails;
$request->billing = $billingInformation;
$request->recipient = $recipient;
$request->processing = $processing;
$request->products = $products;
$request->risk = $risk;
$request->locale = "en-GB";
$request->three_ds = $theeDsRequest;
$request->capture = true;

try {
    $response = $api->getPaymentLinksClient()->createPaymentLink($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone, Address, CustomerRequest, Product
from checkout_sdk.common.enums import Country, Currency, PaymentSourceType
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.payments.links.payments_links import PaymentLinkRequest
from checkout_sdk.payments.payments import ThreeDsRequest, ProcessingSettings, RiskRequest, ShippingDetails, PaymentRecipient
from checkout_sdk.payments.payments_previous import BillingInformation

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

customer_request = CustomerRequest()
customer_request.email = 'email@docs.checkout.com'
customer_request.name = 'Name'

billing_information = BillingInformation()
billing_information.address = address
billing_information.phone = phone

shipping_details = ShippingDetails()
shipping_details.address = address
shipping_details.phone = phone

recipient = PaymentRecipient()
recipient.account_number = '123456789'
recipient.country = Country.ES
recipient.dob = '1985-05-18'
recipient.first_name = 'First'
recipient.last_name = 'Last'
recipient.zip = '12345'

product = Product()
product.name = 'Product Name'
product.quantity = 1
product.price = 10

three_ds_request = ThreeDsRequest()
three_ds_request.enabled = True
three_ds_request.attempt_n3d = False

processing_settings = ProcessingSettings()
processing_settings.aft = True

risk_request = RiskRequest()
risk_request.enabled = True

request = PaymentLinkRequest()
request.amount = 10
request.reference = 'reference'
request.currency = Currency.GBP
request.description = 'Payment for Gold Necklace'
request.customer = customer_request
request.shipping = shipping_details
request.billing = billing_information
request.recipient = recipient
request.processing = processing_settings
request.products = [product]
request.risk = risk_request
request.return_url = 'https://docs.checkout.com/payments/return'
request.locale = 'en-GB'
request.three_ds = three_ds_request
request.expires_in = 6400
request.capture = True
request.allow_payment_methods = [PaymentSourceType.CARD, PaymentSourceType.IDEAL]

try:
    response = api.payments_links.create_payment_link(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /payment-links`

Create a Payment Link and pass through all the payment information, like the amount, currency, country and reference.

> Body parameter

```json
{
  "amount": 1000,
  "currency": "GBP",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "payment_ip": "90.197.169.245",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "display_name": "The Jewelry Shop",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "expires_in": 604800,
  "customer": {
    "email": "ali.farid@example.com",
    "name": "Ali Farid",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "allow_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "3ds": {
    "enabled": false,
    "attempt_n3d": false,
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "risk": {
    "enabled": false
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "sender": {},
  "return_url": "https://example.com/success",
  "locale": "ar",
  "capture": true,
  "capture_on": "2019-08-24T14:15:22Z",
  "instruction": {
    "purpose": "donations"
  },
  "payment_method_configuration": {
    "applepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    }
  }
}
```

<h3 id="create-a-payment-link-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[PaymentLinksRequest](#schemapaymentlinksrequest)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "pl_ELqQJXdXzabU",
  "expires_on": "2020-08-20T20:25:28+08:00",
  "reference": "ORD-123A",
  "warnings": [
    {
      "code": "payment_method_unavailable",
      "description": "The card was provided in the `allow_payment_methods` object, but no card schemes are configured.",
      "value": "card"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}
```

<h3 id="create-a-payment-link-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Create Payment Link Page|[PaymentLinksResponse](#schemapaymentlinksresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey
</aside>

## Get Payment Link details

<a id="opIdgetPaymentLinkDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments.Links;

ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    PaymentLinkDetailsResponse response = await api.PaymentLinksClient().Get("payment_link_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Links.GetPaymentLink("request_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.links.PaymentLinkDetailsResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    PaymentLinkDetailsResponse response = api.paymentLinksClient().getPaymentLink("payment_link_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;

$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

try {
    $response = $api->getPaymentLinksClient()->getPaymentLink("payment_link_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

try:
    response = api.payments_links.get_payment_link('payment_link_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /payment-links/{id}`

Retrieve details about a specific Payment Link using its ID returned when the link was created. In the response, you will see the status of the Payment Link.<br><br>
For more information, see the <a target="_blank" href="https://www.checkout.com/docs/integrate/payment-links">Payment Links documentation</a>.

<h3 id="get-payment-link-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|any|true|none|

> Example responses

> Payment Link details retrieved successfully

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Active",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}
```

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Payment Received",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    },
    "payment": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_88cb4e671m1da22e9bbbyx"
    }
  }
}
```

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Expired",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}
```

<h3 id="get-payment-link-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment Link details retrieved successfully|[GetPaymentLinkResponse](#schemagetpaymentlinkresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment Link session not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-payment-setups">Payment Setups</h1>

The Payment Setup API enables you to simplify the management of complex payment flows that cover multiple payment methods.

For more information, see [Accept a payment using the Payment Setup API](https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-using-the-payment-setup-api).

## Create a Payment Setup

<a id="opIdcreateAPaymentSetup"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payments/setups \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payments/setups HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi"
    },
    "klarna": {
      "initialization": "disabled"
    },
    "stcpay": {
      "initialization": "disabled",
      "otp": "123456"
    },
    "tabby": {
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "qpay": {
      "national_id": "21234567890",
      "description": "string"
    },
    "ideal": {
      "description": "2 t-shirts"
    },
    "knet": {
      "language": "en"
    },
    "bancontact": {
      "account_holder_name": "string"
    },
    "blik": {
      "partner_code": "999111"
    },
    "alipay_cn": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tamara": {
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "multibanco": {
      "account_holder_name": "string"
    },
    "kakaopay": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "p24": {
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {},
    "swish": {
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {},
    "ach": {
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string",
        "identification": {
          "type": "string",
          "issuing_country": "string",
          "number": "string"
        }
      },
      "account_number": "string",
      "bank_code": "stringst",
      "country": "st"
    },
    "sepa": {
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "account_number": "string",
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "initialization": "disabled",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "account_number": "string",
      "bank_code": "string",
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "bank_id": "ob-natwest"
    },
    "paypal": {
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping"
    },
    "cashapp": {
      "initialization": "disabled",
      "customer_profile_sharing": true
    },
    "googlepay": {
      "token_data": {
        "protocol_version": "string",
        "signature": "string",
        "signed_message": "string",
        "tokenization_key": "string"
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "applepay": {
      "token_data": {
        "version": "string",
        "data": "string",
        "signature": "string",
        "header": {
          "ephemeral_public_key": "string",
          "public_key_hash": "string",
          "transaction_id": "string"
        }
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "card": {
      "token": {
        "id": "string"
      },
      "details": {
        "number": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "name": "string",
        "cvv": "string",
        "stored": true,
        "allow_update": true
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "stablecoin": {}
  },
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/setups',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payments/setups',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payments/setups', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payments/setups', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/setups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payments/setups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/setups";
      
      string json = @"{
  ""processing_channel_id"": ""pc_q4dbxom5jbgudnjzjpz7j2z6uq"",
  ""amount"": 10000,
  ""currency"": ""GBP"",
  ""presentment_details"": {
    ""amount"": 110,
    ""currency"": ""EUR""
  },
  ""payment_type"": ""regular"",
  ""reference"": ""REF-0987-475"",
  ""description"": ""Set of 3 t-shirts"",
  ""payment_methods"": {
    ""auto_confirm"": ""card"",
    ""instrument"": {
      ""id"": ""src_wmlfc3zttb4uzmk6snpwb43jbi""
    },
    ""klarna"": {
      ""initialization"": ""disabled""
    },
    ""stcpay"": {
      ""initialization"": ""disabled"",
      ""otp"": ""123456""
    },
    ""tabby"": {
      ""initialization"": ""disabled"",
      ""payment_types"": [
        ""pay_later""
      ]
    },
    ""qpay"": {
      ""national_id"": ""21234567890"",
      ""description"": ""string""
    },
    ""ideal"": {
      ""description"": ""2 t-shirts""
    },
    ""knet"": {
      ""language"": ""en""
    },
    ""bancontact"": {
      ""account_holder_name"": ""string""
    },
    ""blik"": {
      ""partner_code"": ""999111""
    },
    ""alipay_cn"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""alipay_hk"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""gcash"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""tng"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""dana"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""tamara"": {
      ""initialization"": ""disabled"",
      ""risk_assessment"": {
        ""premium_customer"": false,
        ""risk_score"": 42,
        ""order_count_last24h"": 0,
        ""linked_device_count"": 2
      }
    },
    ""multibanco"": {
      ""account_holder_name"": ""string""
    },
    ""kakaopay"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""truemoney"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""p24"": {
      ""account_holder"": {
        ""name"": ""string"",
        ""email"": ""user@example.com""
      }
    },
    ""alma"": {},
    ""swish"": {
      ""billing_descriptor"": ""string"",
      ""account_holder"": {
        ""first_name"": ""John"",
        ""last_name"": ""Smith""
      }
    },
    ""sequra"": {},
    ""ach"": {
      ""account_type"": ""savings"",
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""company_name"": ""string"",
        ""date_of_birth"": ""string"",
        ""identification"": {
          ""type"": ""string"",
          ""issuing_country"": ""string"",
          ""number"": ""string""
        }
      },
      ""account_number"": ""string"",
      ""bank_code"": ""stringst"",
      ""country"": ""st""
    },
    ""sepa"": {
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""company_name"": ""string""
      },
      ""account_number"": ""string"",
      ""country"": ""st"",
      ""currency"": ""string"",
      ""mandate"": {
        ""id"": ""string"",
        ""type"": ""core"",
        ""date_of_signature"": ""2019-08-24""
      }
    },
    ""bacs"": {
      ""initialization"": ""disabled"",
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""company_name"": ""string"",
        ""email"": ""john.smith@example.com""
      },
      ""account_number"": ""string"",
      ""bank_code"": ""string"",
      ""country"": ""st"",
      ""currency"": ""string"",
      ""allow_partial_match"": false
    },
    ""paybybank"": {
      ""bank_id"": ""ob-natwest""
    },
    ""paypal"": {
      ""initialization"": ""disabled"",
      ""user_action"": ""pay_now"",
      ""brand_name"": ""Acme Corporation"",
      ""shipping_preference"": ""no_shipping""
    },
    ""cashapp"": {
      ""initialization"": ""disabled"",
      ""customer_profile_sharing"": true
    },
    ""googlepay"": {
      ""token_data"": {
        ""protocol_version"": ""string"",
        ""signature"": ""string"",
        ""signed_message"": ""string"",
        ""tokenization_key"": ""string""
      },
      ""token"": {
        ""id"": ""string"",
        ""expires_on"": ""2019-08-24T14:15:22Z""
      },
      ""store_for_future_use"": true,
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""middle_name"": ""string"",
        ""company_name"": ""string"",
        ""account_name_inquiry"": true
      },
      ""preferred_scheme"": ""visa""
    },
    ""applepay"": {
      ""token_data"": {
        ""version"": ""string"",
        ""data"": ""string"",
        ""signature"": ""string"",
        ""header"": {
          ""ephemeral_public_key"": ""string"",
          ""public_key_hash"": ""string"",
          ""transaction_id"": ""string""
        }
      },
      ""token"": {
        ""id"": ""string"",
        ""expires_on"": ""2019-08-24T14:15:22Z""
      },
      ""store_for_future_use"": true,
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""middle_name"": ""string"",
        ""company_name"": ""string"",
        ""account_name_inquiry"": true
      },
      ""preferred_scheme"": ""visa""
    },
    ""card"": {
      ""token"": {
        ""id"": ""string""
      },
      ""details"": {
        ""number"": ""string"",
        ""expiry_month"": 0,
        ""expiry_year"": 0,
        ""name"": ""string"",
        ""cvv"": ""string"",
        ""stored"": true,
        ""allow_update"": true
      },
      ""store_for_future_use"": true,
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""middle_name"": ""string"",
        ""company_name"": ""string"",
        ""account_name_inquiry"": true
      },
      ""preferred_scheme"": ""visa""
    },
    ""stablecoin"": {}
  },
  ""settings"": {
    ""success_url"": ""https://example.com/payments/success"",
    ""failure_url"": ""https://example.com/payments/fail"",
    ""capture"": true,
    ""excluded_payment_methods"": [
      ""card"",
      ""klarna"",
      ""stcpay""
    ]
  },
  ""risk"": {
    ""enabled"": true
  },
  ""customer"": {
    ""country"": ""GB"",
    ""id"": ""cus_123456789"",
    ""email"": {
      ""address"": ""johnsmith@example.com"",
      ""verified"": true
    },
    ""name"": ""John Smith"",
    ""tax_number"": ""GB123456789"",
    ""phone"": {
      ""country_code"": ""+44"",
      ""number"": ""207 946 0000""
    },
    ""device"": {
      ""locale"": ""en_GB"",
      ""fingerprint"": ""fp_abc123xyz"",
      ""ipv4"": ""203.0.113.0"",
      ""ipv6"": ""2001:db8:85a3::8a2e:370:7334"",
      ""client"": ""web"",
      ""os"": ""android""
    },
    ""merchant_account"": {
      ""id"": ""1234"",
      ""registration_date"": ""2023-05-01"",
      ""last_modified"": ""2023-05-01"",
      ""returning_customer"": true,
      ""first_transaction_date"": ""2023-09-15"",
      ""last_transaction_date"": ""2025-03-28"",
      ""total_order_count"": 6,
      ""last_payment_amount"": 55.99
    }
  },
  ""order"": {
    ""items"": [
      {
        ""name"": ""Battery Power Pack"",
        ""quantity"": 1,
        ""unit_price"": 1000,
        ""total_amount"": 1000,
        ""reference"": ""BA67A"",
        ""discount_amount"": 150,
        ""url"": ""https://example.com/products/my-item"",
        ""image_url"": ""https://example.com/products/my-item/image"",
        ""type"": ""digital""
      }
    ],
    ""shipping"": {
      ""first_name"": ""Jane"",
      ""last_name"": ""Doe"",
      ""email"": ""jane.doe@example.com"",
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""address"": {
        ""address_line1"": ""10 Canterbury Road"",
        ""address_line2"": ""Flat 2"",
        ""city"": ""London"",
        ""state"": ""Greater London"",
        ""zip"": ""NE1 1KO"",
        ""country"": ""GB""
      },
      ""method"": ""string"",
      ""delay"": 3
    },
    ""sub_merchants"": [
      {
        ""id"": ""SUB12345"",
        ""product_category"": ""Electronics"",
        ""number_of_sales"": 500,
        ""registration_date"": ""2023-01-15""
      }
    ],
    ""invoice_id"": ""inv_123456789"",
    ""shipping_amount"": 5,
    ""discount_amount"": 10,
    ""tax_amount"": 2,
    ""tipping_amount"": 2,
    ""surcharge_amount"": 2,
    ""amount_allocations"": [
      {
        ""id"": ""ent_w4jelhppmfiufdnatam37wrfc4"",
        ""amount"": 1000,
        ""reference"": ""ORD-5023-4E89"",
        ""commission"": {
          ""amount"": 1000,
          ""percentage"": 1.125
        }
      }
    ]
  },
  ""billing"": {
    ""address"": {
      ""address_line1"": ""10 Canterbury Road"",
      ""address_line2"": ""Flat 2"",
      ""city"": ""London"",
      ""state"": ""Greater London"",
      ""zip"": ""NE1 1KO"",
      ""country"": ""GB""
    }
  },
  ""industry"": {
    ""airline"": [
      {
        ""ticket"": {
          ""number"": ""0742464639523"",
          ""issue_date"": ""2025-05-01"",
          ""issuing_carrier_code"": ""042"",
          ""travel_package_indicator"": ""A"",
          ""travel_agency_name"": ""Checkout Travel Agents"",
          ""travel_agency_code"": ""91114362""
        },
        ""passengers"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""Smith"",
            ""date_of_birth"": ""1990-10-31"",
            ""address"": {
              ""country"": ""GB""
            }
          }
        ],
        ""flight_leg_details"": [
          {
            ""flight_number"": ""BA1483"",
            ""carrier_code"": ""BA"",
            ""class_of_travelling"": ""W"",
            ""departure_airport"": ""LHR"",
            ""departure_date"": ""2025-10-13"",
            ""departure_time"": ""18:30"",
            ""arrival_airport"": ""JFK"",
            ""stop_over_code"": ""X"",
            ""fare_basis_code"": ""WUP14B""
          }
        ],
        ""total_number_of_passengers"": 1,
        ""travel_type"": ""international"",
        ""trip_type"": ""one_way"",
        ""refundable"": true,
        ""delivery_recipient"": ""jane.smith@example.com"",
        ""ancillaries"": ""extra_baggage"",
        ""insurance"": {
          ""type"": ""travel"",
          ""company"": ""AXA"",
          ""price"": {
            ""amount"": 500,
            ""currency"": ""SAR""
          }
        }
      }
    ],
    ""accommodation"": [
      {
        ""name"": ""Checkout Lodge"",
        ""booking_reference"": ""REF9083748"",
        ""check_in_date"": ""2025-04-11"",
        ""check_out_date"": ""2025-04-18"",
        ""address"": {
          ""address_line1"": ""123 High Street"",
          ""city"": ""London"",
          ""state"": ""Greater London"",
          ""country"": ""GB"",
          ""zip"": ""NE1 1CK""
        },
        ""number_of_rooms"": 2,
        ""guests"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""Smith"",
            ""date_of_birth"": ""1970-03-19""
          }
        ],
        ""room"": [
          {
            ""rate"": 42.3,
            ""number_of_nights"": 5,
            ""type"": ""deluxe""
          }
        ],
        ""total_number_of_guests"": 2,
        ""refundable"": true,
        ""delivery_recipient"": ""jane.smith@example.com"",
        ""host"": {
          ""registration_date"": ""2020-01-01"",
          ""total_reservation_count"": 150
        }
      }
    ]
  },
  ""account_funding_transaction"": {
    ""enabled"": true,
    ""purpose"": ""financial_services"",
    ""sender"": {
      ""date_of_birth"": ""2000-01-01"",
      ""reference"": ""0fc88634-78c1-4286-9cb6-6ca358730c8c"",
      ""identification"": {
        ""type"": ""passport"",
        ""number"": ""1234567890"",
        ""issuing_country"": ""US""
      }
    },
    ""recipient"": {
      ""date_of_birth"": ""2000-01-01"",
      ""account_number"": ""string"",
      ""first_name"": ""string"",
      ""last_name"": ""string"",
      ""address"": {
        ""address_line1"": ""10 Canterbury Road"",
        ""address_line2"": ""Flat 2"",
        ""city"": ""London"",
        ""state"": ""Greater London"",
        ""zip"": ""NE1 1KO"",
        ""country"": ""GB""
      }
    }
  },
  ""terminal"": {
    ""id"": ""12345678"",
    ""local_date_time"": ""2026-05-26T13:05:14+01:00""
  },
  ""billing_descriptor"": {
    ""name"": ""Checkout.com"",
    ""city"": ""London"",
    ""reference"": ""Payment for order 123456""
  },
  ""metadata"": {
    ""property1"": ""string"",
    ""property2"": ""string""
  }
}";
      PaymentSetup content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(PaymentSetup content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PaymentSetup content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payments/setups`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>

Creates a Payment Setup.

To maximize the information available to the payment setup, create a Payment Setup as early as possible in the customer's journey. For example, create it the first time they land on the basket page.

> Body parameter

```json
{
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi"
    },
    "klarna": {
      "initialization": "disabled"
    },
    "stcpay": {
      "initialization": "disabled",
      "otp": "123456"
    },
    "tabby": {
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "qpay": {
      "national_id": "21234567890",
      "description": "string"
    },
    "ideal": {
      "description": "2 t-shirts"
    },
    "knet": {
      "language": "en"
    },
    "bancontact": {
      "account_holder_name": "string"
    },
    "blik": {
      "partner_code": "999111"
    },
    "alipay_cn": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tamara": {
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "multibanco": {
      "account_holder_name": "string"
    },
    "kakaopay": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "p24": {
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {},
    "swish": {
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {},
    "ach": {
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string",
        "identification": {
          "type": "string",
          "issuing_country": "string",
          "number": "string"
        }
      },
      "account_number": "string",
      "bank_code": "stringst",
      "country": "st"
    },
    "sepa": {
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "account_number": "string",
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "initialization": "disabled",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "account_number": "string",
      "bank_code": "string",
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "bank_id": "ob-natwest"
    },
    "paypal": {
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping"
    },
    "cashapp": {
      "initialization": "disabled",
      "customer_profile_sharing": true
    },
    "googlepay": {
      "token_data": {
        "protocol_version": "string",
        "signature": "string",
        "signed_message": "string",
        "tokenization_key": "string"
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "applepay": {
      "token_data": {
        "version": "string",
        "data": "string",
        "signature": "string",
        "header": {
          "ephemeral_public_key": "string",
          "public_key_hash": "string",
          "transaction_id": "string"
        }
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "card": {
      "token": {
        "id": "string"
      },
      "details": {
        "number": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "name": "string",
        "cvv": "string",
        "stored": true,
        "allow_update": true
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "stablecoin": {}
  },
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  }
}
```

<h3 id="create-a-payment-setup-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[PaymentSetup](#schemapaymentsetup)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "string",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
      "type": "bacs",
      "action": {
        "type": "set_instrument"
      }
    },
    "klarna": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "sdk",
        "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
        "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
      },
      "account_holder": {
        "name": "string"
      },
      "iban": "DE89370400440532013000"
    },
    "stcpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "otp"
      }
    },
    "tabby": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "bizum": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "paynow": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "qpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "string"
    },
    "eps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ideal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "2 t-shirts"
    },
    "knet": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "language": "en"
    },
    "bancontact": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "benefit": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "blik": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "vipps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "twint": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "alipay_cn": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "mobilepay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "tamara": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "mbway": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "multibanco": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "wechatpay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "kakaopay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "octopus": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "p24": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "swish": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ach": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string"
      },
      "country": "st"
    },
    "sepa": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "instrument_id": "src_wkq7552u245upl5h75x24554xy",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "bank_id": "ob-natwest",
      "action": {
        "type": "select_bank",
        "banks": [
          {
            "bank_id": "ob-natwest",
            "display_name": "NatWest",
            "logo_url": "https://cdn.token.io/banks/natwest.png",
            "available": true
          }
        ]
      }
    },
    "paypal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping",
      "action": {
        "type": "sdk",
        "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
      }
    },
    "cashapp": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "customer_profile_sharing": true,
      "customer_profile": {
        "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
        "cashtag": "$CASHTAG_C_TOKEN",
        "reference_id": "value",
        "full_name": "John Middle Doe",
        "given_name": "John",
        "middle_name": "Middle",
        "family_name": "Doe",
        "suffix": "Jr.",
        "birth_date": "1990-01-01",
        "address": {
          "address_line_1": "123 Main St",
          "address_line_2": "string",
          "address_line_3": "string",
          "locality": "Springfield",
          "sublocality": "string",
          "administrative_district_level_1": "IL",
          "postal_code": "62701",
          "country": "US"
        },
        "phone_number": "5555555555",
        "email_address": "cash@cash.com",
        "customer_since": "1970-01-18T12:46:04.8Z"
      },
      "reference": "ORDER-99",
      "action": {
        "type": "redirect",
        "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
      }
    },
    "googlepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "applepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "card": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string"
      },
      "details": {
        "last4": "string",
        "bin": "string",
        "scheme": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "expires_on": "2019-08-24T14:15:22Z",
        "allow_update": true
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "stablecoin": {
      "status": "ready",
      "flags": [
        "string"
      ]
    }
  },
  "available_payment_methods": [
    "card",
    "klarna",
    "stcpay",
    "stablecoin"
  ],
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "latest_payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "requested_on": "2019-08-24T14:15:22Z",
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 6,
      "expiry_year": 2025,
      "name": "Bruce Wayne",
      "scheme": "VISA",
      "scheme_local": "Cartes_Bancaires",
      "local_schemes": [
        "cartes_bancaires",
        "visa"
      ],
      "last4": "9996",
      "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
      "bin": "45434748",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "card_wallet_type": "applepay",
      "issuer": "GOTHAM STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "avs_check": "S",
      "cvv_check": "Y",
      "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
      "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
      "account_update_status": "card_updated",
      "account_update_failure_code": "VAU009",
      "account_holder": {}
    },
    "destination": {
      "type": "bank_account",
      "id": "string"
    },
    "amount": 6540,
    "amount_requested": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "payment_plan": {
      "amount_variability": "Variable",
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "approved": true,
    "expires_on": "string",
    "status": "Authorized",
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "3ds": {
      "downgraded": false,
      "enrolled": "Y",
      "signature_valid": "Y",
      "authentication_response": "Y",
      "authentication_status_reason": "string",
      "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
      "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
      "eci": "string",
      "version": "2.1.0",
      "exemption": "low_value",
      "exemption_applied": "string",
      "challenged": true,
      "upgrade_reason": "sca_retry",
      "trusted_listing": {
        "status": "Y",
        "source": "01"
      }
    },
    "authentication": {
      "experience": "3ds"
    },
    "risk": {
      "flagged": true,
      "score": 22
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne",
      "summary": {
        "registration_date": "2023-05-01",
        "first_transaction_date": "2023-07-01",
        "last_payment_date": "2023-08-01",
        "total_order_count": 15,
        "last_payment_amount": 500,
        "is_premium_customer": true,
        "is_returning_customer": true,
        "lifetime_value": 500
      }
    },
    "billing_descriptor": {
      "name": "SUPERHEROES.COM",
      "city": "GOTHAM",
      "reference": "string",
      "local_descriptors": [
        {
          "name": "漢字",
          "character_set": "kanji"
        }
      ]
    },
    "shipping": {
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      }
    },
    "payment_ip": "90.197.169.245",
    "sender": {
      "type": "individual",
      "reference": "8285282045818",
      "first_name": "John",
      "last_name": "Jones",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    },
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ],
    "recipient": {
      "dob": "1985-05-15",
      "account_number": "5555554444",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "zip": "SW1A",
      "first_name": "John",
      "last_name": "Jones"
    },
    "processing": {
      "preferred_scheme": "cartes_bancaires",
      "app_id": "com.iap.linker_portal",
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ],
      "partner_customer_id": "2102209000001106125F8",
      "partner_payment_id": "440644309099499894406",
      "partner_code": "999111",
      "failure_code": "partner_error",
      "partner_response_code": "ER_WRONG_TICKET",
      "tax_amount": 1000,
      "locale": "en-US",
      "retrieval_reference_number": "909913440644",
      "partner_order_id": "string",
      "partner_status": "string",
      "partner_transaction_id": "string",
      "partner_error_codes": [
        "string"
      ],
      "partner_merchant_advice_code": "24",
      "partner_error_message": "string",
      "partner_authorization_code": "string",
      "partner_authorization_response_code": "string",
      "partner_fraud_status": "string",
      "pan_type_processed": "fpan",
      "fallback_source_used": false,
      "custom_payment_method_ids": [
        "string"
      ],
      "aft": true,
      "merchant_category_code": "5311",
      "scheme_merchant_id": "123456",
      "scheme": "ACCEL",
      "scheme_transaction_link_id": "string"
    },
    "items": [
      {
        "type": "digital",
        "sub_type": "stablecoin",
        "name": "Necklace",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "commodity_code": "DEF123",
        "unit_of_measure": "metres",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "tax_exempt": true,
        "discount_amount": 1000,
        "wxpay_goods_id": "1001",
        "url": "string",
        "image_url": "string",
        "service_ends_on": "2025-01-01",
        "purchase_country": "GB",
        "foreign_retailer_amount": 200
      }
    ],
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    },
    "eci": "06",
    "scheme_id": "488341541494658",
    "actions": [
      {
        "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
        "type": "Authorization",
        "response_code": "10000",
        "response_summary": "Approved"
      }
    ],
    "retry": {
      "enabled": true,
      "attempts_made": 0,
      "max_attempts": 6,
      "ends_on": "2019-08-24T14:15:22Z",
      "next_attempt_on": "2019-08-24T14:15:22Z"
    },
    "cko_network_token_available": false,
    "instruction": {
      "purpose": "financial_services"
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "actions": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
      },
      "authorize": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
      },
      "refund": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
      }
    }
  }
}
```

<h3 id="create-a-payment-setup-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment Setup created.|[PaymentSetup](#schemapaymentsetup)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Authentication failed. Provide a valid API key or access token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|You do not have permission to create a Payment Setup.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|One or more fields failed validation. See the response body for details.|[PaymentSetupValidationError](#schemapaymentsetupvalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment vault ), ApiSecretKey
</aside>

## Update a Payment Setup

<a id="opIdupdateAPaymentSetup"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/payments/setups/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/payments/setups/{id} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi"
    },
    "klarna": {
      "initialization": "disabled"
    },
    "stcpay": {
      "initialization": "disabled",
      "otp": "123456"
    },
    "tabby": {
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "qpay": {
      "national_id": "21234567890",
      "description": "string"
    },
    "ideal": {
      "description": "2 t-shirts"
    },
    "knet": {
      "language": "en"
    },
    "bancontact": {
      "account_holder_name": "string"
    },
    "blik": {
      "partner_code": "999111"
    },
    "alipay_cn": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tamara": {
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "multibanco": {
      "account_holder_name": "string"
    },
    "kakaopay": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "p24": {
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {},
    "swish": {
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {},
    "ach": {
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string",
        "identification": {
          "type": "string",
          "issuing_country": "string",
          "number": "string"
        }
      },
      "account_number": "string",
      "bank_code": "stringst",
      "country": "st"
    },
    "sepa": {
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "account_number": "string",
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "initialization": "disabled",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "account_number": "string",
      "bank_code": "string",
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "bank_id": "ob-natwest"
    },
    "paypal": {
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping"
    },
    "cashapp": {
      "initialization": "disabled",
      "customer_profile_sharing": true
    },
    "googlepay": {
      "token_data": {
        "protocol_version": "string",
        "signature": "string",
        "signed_message": "string",
        "tokenization_key": "string"
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "applepay": {
      "token_data": {
        "version": "string",
        "data": "string",
        "signature": "string",
        "header": {
          "ephemeral_public_key": "string",
          "public_key_hash": "string",
          "transaction_id": "string"
        }
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "card": {
      "token": {
        "id": "string"
      },
      "details": {
        "number": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "name": "string",
        "cvv": "string",
        "stored": true,
        "allow_update": true
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "stablecoin": {}
  },
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}";

      
      string json = @"{
  ""processing_channel_id"": ""pc_q4dbxom5jbgudnjzjpz7j2z6uq"",
  ""amount"": 10000,
  ""currency"": ""GBP"",
  ""presentment_details"": {
    ""amount"": 110,
    ""currency"": ""EUR""
  },
  ""payment_type"": ""regular"",
  ""reference"": ""REF-0987-475"",
  ""description"": ""Set of 3 t-shirts"",
  ""payment_methods"": {
    ""auto_confirm"": ""card"",
    ""instrument"": {
      ""id"": ""src_wmlfc3zttb4uzmk6snpwb43jbi""
    },
    ""klarna"": {
      ""initialization"": ""disabled""
    },
    ""stcpay"": {
      ""initialization"": ""disabled"",
      ""otp"": ""123456""
    },
    ""tabby"": {
      ""initialization"": ""disabled"",
      ""payment_types"": [
        ""pay_later""
      ]
    },
    ""qpay"": {
      ""national_id"": ""21234567890"",
      ""description"": ""string""
    },
    ""ideal"": {
      ""description"": ""2 t-shirts""
    },
    ""knet"": {
      ""language"": ""en""
    },
    ""bancontact"": {
      ""account_holder_name"": ""string""
    },
    ""blik"": {
      ""partner_code"": ""999111""
    },
    ""alipay_cn"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""alipay_hk"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""gcash"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""tng"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""dana"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""tamara"": {
      ""initialization"": ""disabled"",
      ""risk_assessment"": {
        ""premium_customer"": false,
        ""risk_score"": 42,
        ""order_count_last24h"": 0,
        ""linked_device_count"": 2
      }
    },
    ""multibanco"": {
      ""account_holder_name"": ""string""
    },
    ""kakaopay"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""truemoney"": {
      ""terminal_type"": ""web"",
      ""os_type"": ""android""
    },
    ""p24"": {
      ""account_holder"": {
        ""name"": ""string"",
        ""email"": ""user@example.com""
      }
    },
    ""alma"": {},
    ""swish"": {
      ""billing_descriptor"": ""string"",
      ""account_holder"": {
        ""first_name"": ""John"",
        ""last_name"": ""Smith""
      }
    },
    ""sequra"": {},
    ""ach"": {
      ""account_type"": ""savings"",
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""company_name"": ""string"",
        ""date_of_birth"": ""string"",
        ""identification"": {
          ""type"": ""string"",
          ""issuing_country"": ""string"",
          ""number"": ""string""
        }
      },
      ""account_number"": ""string"",
      ""bank_code"": ""stringst"",
      ""country"": ""st""
    },
    ""sepa"": {
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""company_name"": ""string""
      },
      ""account_number"": ""string"",
      ""country"": ""st"",
      ""currency"": ""string"",
      ""mandate"": {
        ""id"": ""string"",
        ""type"": ""core"",
        ""date_of_signature"": ""2019-08-24""
      }
    },
    ""bacs"": {
      ""initialization"": ""disabled"",
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""company_name"": ""string"",
        ""email"": ""john.smith@example.com""
      },
      ""account_number"": ""string"",
      ""bank_code"": ""string"",
      ""country"": ""st"",
      ""currency"": ""string"",
      ""allow_partial_match"": false
    },
    ""paybybank"": {
      ""bank_id"": ""ob-natwest""
    },
    ""paypal"": {
      ""initialization"": ""disabled"",
      ""user_action"": ""pay_now"",
      ""brand_name"": ""Acme Corporation"",
      ""shipping_preference"": ""no_shipping""
    },
    ""cashapp"": {
      ""initialization"": ""disabled"",
      ""customer_profile_sharing"": true
    },
    ""googlepay"": {
      ""token_data"": {
        ""protocol_version"": ""string"",
        ""signature"": ""string"",
        ""signed_message"": ""string"",
        ""tokenization_key"": ""string""
      },
      ""token"": {
        ""id"": ""string"",
        ""expires_on"": ""2019-08-24T14:15:22Z""
      },
      ""store_for_future_use"": true,
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""middle_name"": ""string"",
        ""company_name"": ""string"",
        ""account_name_inquiry"": true
      },
      ""preferred_scheme"": ""visa""
    },
    ""applepay"": {
      ""token_data"": {
        ""version"": ""string"",
        ""data"": ""string"",
        ""signature"": ""string"",
        ""header"": {
          ""ephemeral_public_key"": ""string"",
          ""public_key_hash"": ""string"",
          ""transaction_id"": ""string""
        }
      },
      ""token"": {
        ""id"": ""string"",
        ""expires_on"": ""2019-08-24T14:15:22Z""
      },
      ""store_for_future_use"": true,
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""middle_name"": ""string"",
        ""company_name"": ""string"",
        ""account_name_inquiry"": true
      },
      ""preferred_scheme"": ""visa""
    },
    ""card"": {
      ""token"": {
        ""id"": ""string""
      },
      ""details"": {
        ""number"": ""string"",
        ""expiry_month"": 0,
        ""expiry_year"": 0,
        ""name"": ""string"",
        ""cvv"": ""string"",
        ""stored"": true,
        ""allow_update"": true
      },
      ""store_for_future_use"": true,
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""account_holder"": {
        ""type"": ""individual"",
        ""first_name"": ""string"",
        ""last_name"": ""string"",
        ""middle_name"": ""string"",
        ""company_name"": ""string"",
        ""account_name_inquiry"": true
      },
      ""preferred_scheme"": ""visa""
    },
    ""stablecoin"": {}
  },
  ""settings"": {
    ""success_url"": ""https://example.com/payments/success"",
    ""failure_url"": ""https://example.com/payments/fail"",
    ""capture"": true,
    ""excluded_payment_methods"": [
      ""card"",
      ""klarna"",
      ""stcpay""
    ]
  },
  ""risk"": {
    ""enabled"": true
  },
  ""customer"": {
    ""country"": ""GB"",
    ""id"": ""cus_123456789"",
    ""email"": {
      ""address"": ""johnsmith@example.com"",
      ""verified"": true
    },
    ""name"": ""John Smith"",
    ""tax_number"": ""GB123456789"",
    ""phone"": {
      ""country_code"": ""+44"",
      ""number"": ""207 946 0000""
    },
    ""device"": {
      ""locale"": ""en_GB"",
      ""fingerprint"": ""fp_abc123xyz"",
      ""ipv4"": ""203.0.113.0"",
      ""ipv6"": ""2001:db8:85a3::8a2e:370:7334"",
      ""client"": ""web"",
      ""os"": ""android""
    },
    ""merchant_account"": {
      ""id"": ""1234"",
      ""registration_date"": ""2023-05-01"",
      ""last_modified"": ""2023-05-01"",
      ""returning_customer"": true,
      ""first_transaction_date"": ""2023-09-15"",
      ""last_transaction_date"": ""2025-03-28"",
      ""total_order_count"": 6,
      ""last_payment_amount"": 55.99
    }
  },
  ""order"": {
    ""items"": [
      {
        ""name"": ""Battery Power Pack"",
        ""quantity"": 1,
        ""unit_price"": 1000,
        ""total_amount"": 1000,
        ""reference"": ""BA67A"",
        ""discount_amount"": 150,
        ""url"": ""https://example.com/products/my-item"",
        ""image_url"": ""https://example.com/products/my-item/image"",
        ""type"": ""digital""
      }
    ],
    ""shipping"": {
      ""first_name"": ""Jane"",
      ""last_name"": ""Doe"",
      ""email"": ""jane.doe@example.com"",
      ""phone"": {
        ""country_code"": ""+44"",
        ""number"": ""207 946 0000""
      },
      ""address"": {
        ""address_line1"": ""10 Canterbury Road"",
        ""address_line2"": ""Flat 2"",
        ""city"": ""London"",
        ""state"": ""Greater London"",
        ""zip"": ""NE1 1KO"",
        ""country"": ""GB""
      },
      ""method"": ""string"",
      ""delay"": 3
    },
    ""sub_merchants"": [
      {
        ""id"": ""SUB12345"",
        ""product_category"": ""Electronics"",
        ""number_of_sales"": 500,
        ""registration_date"": ""2023-01-15""
      }
    ],
    ""invoice_id"": ""inv_123456789"",
    ""shipping_amount"": 5,
    ""discount_amount"": 10,
    ""tax_amount"": 2,
    ""tipping_amount"": 2,
    ""surcharge_amount"": 2,
    ""amount_allocations"": [
      {
        ""id"": ""ent_w4jelhppmfiufdnatam37wrfc4"",
        ""amount"": 1000,
        ""reference"": ""ORD-5023-4E89"",
        ""commission"": {
          ""amount"": 1000,
          ""percentage"": 1.125
        }
      }
    ]
  },
  ""billing"": {
    ""address"": {
      ""address_line1"": ""10 Canterbury Road"",
      ""address_line2"": ""Flat 2"",
      ""city"": ""London"",
      ""state"": ""Greater London"",
      ""zip"": ""NE1 1KO"",
      ""country"": ""GB""
    }
  },
  ""industry"": {
    ""airline"": [
      {
        ""ticket"": {
          ""number"": ""0742464639523"",
          ""issue_date"": ""2025-05-01"",
          ""issuing_carrier_code"": ""042"",
          ""travel_package_indicator"": ""A"",
          ""travel_agency_name"": ""Checkout Travel Agents"",
          ""travel_agency_code"": ""91114362""
        },
        ""passengers"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""Smith"",
            ""date_of_birth"": ""1990-10-31"",
            ""address"": {
              ""country"": ""GB""
            }
          }
        ],
        ""flight_leg_details"": [
          {
            ""flight_number"": ""BA1483"",
            ""carrier_code"": ""BA"",
            ""class_of_travelling"": ""W"",
            ""departure_airport"": ""LHR"",
            ""departure_date"": ""2025-10-13"",
            ""departure_time"": ""18:30"",
            ""arrival_airport"": ""JFK"",
            ""stop_over_code"": ""X"",
            ""fare_basis_code"": ""WUP14B""
          }
        ],
        ""total_number_of_passengers"": 1,
        ""travel_type"": ""international"",
        ""trip_type"": ""one_way"",
        ""refundable"": true,
        ""delivery_recipient"": ""jane.smith@example.com"",
        ""ancillaries"": ""extra_baggage"",
        ""insurance"": {
          ""type"": ""travel"",
          ""company"": ""AXA"",
          ""price"": {
            ""amount"": 500,
            ""currency"": ""SAR""
          }
        }
      }
    ],
    ""accommodation"": [
      {
        ""name"": ""Checkout Lodge"",
        ""booking_reference"": ""REF9083748"",
        ""check_in_date"": ""2025-04-11"",
        ""check_out_date"": ""2025-04-18"",
        ""address"": {
          ""address_line1"": ""123 High Street"",
          ""city"": ""London"",
          ""state"": ""Greater London"",
          ""country"": ""GB"",
          ""zip"": ""NE1 1CK""
        },
        ""number_of_rooms"": 2,
        ""guests"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""Smith"",
            ""date_of_birth"": ""1970-03-19""
          }
        ],
        ""room"": [
          {
            ""rate"": 42.3,
            ""number_of_nights"": 5,
            ""type"": ""deluxe""
          }
        ],
        ""total_number_of_guests"": 2,
        ""refundable"": true,
        ""delivery_recipient"": ""jane.smith@example.com"",
        ""host"": {
          ""registration_date"": ""2020-01-01"",
          ""total_reservation_count"": 150
        }
      }
    ]
  },
  ""account_funding_transaction"": {
    ""enabled"": true,
    ""purpose"": ""financial_services"",
    ""sender"": {
      ""date_of_birth"": ""2000-01-01"",
      ""reference"": ""0fc88634-78c1-4286-9cb6-6ca358730c8c"",
      ""identification"": {
        ""type"": ""passport"",
        ""number"": ""1234567890"",
        ""issuing_country"": ""US""
      }
    },
    ""recipient"": {
      ""date_of_birth"": ""2000-01-01"",
      ""account_number"": ""string"",
      ""first_name"": ""string"",
      ""last_name"": ""string"",
      ""address"": {
        ""address_line1"": ""10 Canterbury Road"",
        ""address_line2"": ""Flat 2"",
        ""city"": ""London"",
        ""state"": ""Greater London"",
        ""zip"": ""NE1 1KO"",
        ""country"": ""GB""
      }
    }
  },
  ""terminal"": {
    ""id"": ""12345678"",
    ""local_date_time"": ""2026-05-26T13:05:14+01:00""
  },
  ""billing_descriptor"": {
    ""name"": ""Checkout.com"",
    ""city"": ""London"",
    ""reference"": ""Payment for order 123456""
  },
  ""metadata"": {
    ""property1"": ""string"",
    ""property2"": ""string""
  }
}";
      PaymentSetup content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);
      
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, PaymentSetup content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PaymentSetup content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /payments/setups/{id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>

Updates a Payment Setup.

Update the Payment Setup whenever there are significant changes in the data relevant to the customer's transaction. For example, when the customer makes a change that impacts the total payment amount.

> Body parameter

```json
{
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi"
    },
    "klarna": {
      "initialization": "disabled"
    },
    "stcpay": {
      "initialization": "disabled",
      "otp": "123456"
    },
    "tabby": {
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "qpay": {
      "national_id": "21234567890",
      "description": "string"
    },
    "ideal": {
      "description": "2 t-shirts"
    },
    "knet": {
      "language": "en"
    },
    "bancontact": {
      "account_holder_name": "string"
    },
    "blik": {
      "partner_code": "999111"
    },
    "alipay_cn": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "tamara": {
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "multibanco": {
      "account_holder_name": "string"
    },
    "kakaopay": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "terminal_type": "web",
      "os_type": "android"
    },
    "p24": {
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {},
    "swish": {
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {},
    "ach": {
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string",
        "identification": {
          "type": "string",
          "issuing_country": "string",
          "number": "string"
        }
      },
      "account_number": "string",
      "bank_code": "stringst",
      "country": "st"
    },
    "sepa": {
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "account_number": "string",
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "initialization": "disabled",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "account_number": "string",
      "bank_code": "string",
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "bank_id": "ob-natwest"
    },
    "paypal": {
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping"
    },
    "cashapp": {
      "initialization": "disabled",
      "customer_profile_sharing": true
    },
    "googlepay": {
      "token_data": {
        "protocol_version": "string",
        "signature": "string",
        "signed_message": "string",
        "tokenization_key": "string"
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "applepay": {
      "token_data": {
        "version": "string",
        "data": "string",
        "signature": "string",
        "header": {
          "ephemeral_public_key": "string",
          "public_key_hash": "string",
          "transaction_id": "string"
        }
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "card": {
      "token": {
        "id": "string"
      },
      "details": {
        "number": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "name": "string",
        "cvv": "string",
        "stored": true,
        "allow_update": true
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "preferred_scheme": "visa"
    },
    "stablecoin": {}
  },
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  }
}
```

<h3 id="update-a-payment-setup-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The unique identifier of the Payment Setup to update.|
|body|body|[PaymentSetup](#schemapaymentsetup)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "string",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
      "type": "bacs",
      "action": {
        "type": "set_instrument"
      }
    },
    "klarna": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "sdk",
        "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
        "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
      },
      "account_holder": {
        "name": "string"
      },
      "iban": "DE89370400440532013000"
    },
    "stcpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "otp"
      }
    },
    "tabby": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "bizum": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "paynow": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "qpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "string"
    },
    "eps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ideal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "2 t-shirts"
    },
    "knet": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "language": "en"
    },
    "bancontact": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "benefit": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "blik": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "vipps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "twint": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "alipay_cn": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "mobilepay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "tamara": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "mbway": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "multibanco": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "wechatpay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "kakaopay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "octopus": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "p24": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "swish": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ach": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string"
      },
      "country": "st"
    },
    "sepa": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "instrument_id": "src_wkq7552u245upl5h75x24554xy",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "bank_id": "ob-natwest",
      "action": {
        "type": "select_bank",
        "banks": [
          {
            "bank_id": "ob-natwest",
            "display_name": "NatWest",
            "logo_url": "https://cdn.token.io/banks/natwest.png",
            "available": true
          }
        ]
      }
    },
    "paypal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping",
      "action": {
        "type": "sdk",
        "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
      }
    },
    "cashapp": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "customer_profile_sharing": true,
      "customer_profile": {
        "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
        "cashtag": "$CASHTAG_C_TOKEN",
        "reference_id": "value",
        "full_name": "John Middle Doe",
        "given_name": "John",
        "middle_name": "Middle",
        "family_name": "Doe",
        "suffix": "Jr.",
        "birth_date": "1990-01-01",
        "address": {
          "address_line_1": "123 Main St",
          "address_line_2": "string",
          "address_line_3": "string",
          "locality": "Springfield",
          "sublocality": "string",
          "administrative_district_level_1": "IL",
          "postal_code": "62701",
          "country": "US"
        },
        "phone_number": "5555555555",
        "email_address": "cash@cash.com",
        "customer_since": "1970-01-18T12:46:04.8Z"
      },
      "reference": "ORDER-99",
      "action": {
        "type": "redirect",
        "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
      }
    },
    "googlepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "applepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "card": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string"
      },
      "details": {
        "last4": "string",
        "bin": "string",
        "scheme": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "expires_on": "2019-08-24T14:15:22Z",
        "allow_update": true
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "stablecoin": {
      "status": "ready",
      "flags": [
        "string"
      ]
    }
  },
  "available_payment_methods": [
    "card",
    "klarna",
    "stcpay",
    "stablecoin"
  ],
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "latest_payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "requested_on": "2019-08-24T14:15:22Z",
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 6,
      "expiry_year": 2025,
      "name": "Bruce Wayne",
      "scheme": "VISA",
      "scheme_local": "Cartes_Bancaires",
      "local_schemes": [
        "cartes_bancaires",
        "visa"
      ],
      "last4": "9996",
      "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
      "bin": "45434748",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "card_wallet_type": "applepay",
      "issuer": "GOTHAM STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "avs_check": "S",
      "cvv_check": "Y",
      "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
      "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
      "account_update_status": "card_updated",
      "account_update_failure_code": "VAU009",
      "account_holder": {}
    },
    "destination": {
      "type": "bank_account",
      "id": "string"
    },
    "amount": 6540,
    "amount_requested": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "payment_plan": {
      "amount_variability": "Variable",
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "approved": true,
    "expires_on": "string",
    "status": "Authorized",
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "3ds": {
      "downgraded": false,
      "enrolled": "Y",
      "signature_valid": "Y",
      "authentication_response": "Y",
      "authentication_status_reason": "string",
      "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
      "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
      "eci": "string",
      "version": "2.1.0",
      "exemption": "low_value",
      "exemption_applied": "string",
      "challenged": true,
      "upgrade_reason": "sca_retry",
      "trusted_listing": {
        "status": "Y",
        "source": "01"
      }
    },
    "authentication": {
      "experience": "3ds"
    },
    "risk": {
      "flagged": true,
      "score": 22
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne",
      "summary": {
        "registration_date": "2023-05-01",
        "first_transaction_date": "2023-07-01",
        "last_payment_date": "2023-08-01",
        "total_order_count": 15,
        "last_payment_amount": 500,
        "is_premium_customer": true,
        "is_returning_customer": true,
        "lifetime_value": 500
      }
    },
    "billing_descriptor": {
      "name": "SUPERHEROES.COM",
      "city": "GOTHAM",
      "reference": "string",
      "local_descriptors": [
        {
          "name": "漢字",
          "character_set": "kanji"
        }
      ]
    },
    "shipping": {
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      }
    },
    "payment_ip": "90.197.169.245",
    "sender": {
      "type": "individual",
      "reference": "8285282045818",
      "first_name": "John",
      "last_name": "Jones",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    },
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ],
    "recipient": {
      "dob": "1985-05-15",
      "account_number": "5555554444",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "zip": "SW1A",
      "first_name": "John",
      "last_name": "Jones"
    },
    "processing": {
      "preferred_scheme": "cartes_bancaires",
      "app_id": "com.iap.linker_portal",
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ],
      "partner_customer_id": "2102209000001106125F8",
      "partner_payment_id": "440644309099499894406",
      "partner_code": "999111",
      "failure_code": "partner_error",
      "partner_response_code": "ER_WRONG_TICKET",
      "tax_amount": 1000,
      "locale": "en-US",
      "retrieval_reference_number": "909913440644",
      "partner_order_id": "string",
      "partner_status": "string",
      "partner_transaction_id": "string",
      "partner_error_codes": [
        "string"
      ],
      "partner_merchant_advice_code": "24",
      "partner_error_message": "string",
      "partner_authorization_code": "string",
      "partner_authorization_response_code": "string",
      "partner_fraud_status": "string",
      "pan_type_processed": "fpan",
      "fallback_source_used": false,
      "custom_payment_method_ids": [
        "string"
      ],
      "aft": true,
      "merchant_category_code": "5311",
      "scheme_merchant_id": "123456",
      "scheme": "ACCEL",
      "scheme_transaction_link_id": "string"
    },
    "items": [
      {
        "type": "digital",
        "sub_type": "stablecoin",
        "name": "Necklace",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "commodity_code": "DEF123",
        "unit_of_measure": "metres",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "tax_exempt": true,
        "discount_amount": 1000,
        "wxpay_goods_id": "1001",
        "url": "string",
        "image_url": "string",
        "service_ends_on": "2025-01-01",
        "purchase_country": "GB",
        "foreign_retailer_amount": 200
      }
    ],
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    },
    "eci": "06",
    "scheme_id": "488341541494658",
    "actions": [
      {
        "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
        "type": "Authorization",
        "response_code": "10000",
        "response_summary": "Approved"
      }
    ],
    "retry": {
      "enabled": true,
      "attempts_made": 0,
      "max_attempts": 6,
      "ends_on": "2019-08-24T14:15:22Z",
      "next_attempt_on": "2019-08-24T14:15:22Z"
    },
    "cko_network_token_available": false,
    "instruction": {
      "purpose": "financial_services"
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "actions": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
      },
      "authorize": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
      },
      "refund": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
      }
    }
  }
}
```

<h3 id="update-a-payment-setup-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment Setup updated.|[PaymentSetup](#schemapaymentsetup)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Authentication failed. Provide a valid API key or access token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|You do not have permission to update this Payment Setup.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|One or more fields failed validation. See the response body for details.|[PaymentSetupValidationError](#schemapaymentsetupvalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment vault ), ApiSecretKey
</aside>

## Get a Payment Setup

<a id="opIdgetAPaymentSetup"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/payments/setups/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/payments/setups/{id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /payments/setups/{id}`

<span style="font-size: 14px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>

Retrieves a Payment Setup by its unique identifier.

<h3 id="get-a-payment-setup-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The unique identifier of the Payment Setup to retrieve.|

> Example responses

> 200 Response

```json
{
  "id": "string",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
      "type": "bacs",
      "action": {
        "type": "set_instrument"
      }
    },
    "klarna": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "sdk",
        "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
        "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
      },
      "account_holder": {
        "name": "string"
      },
      "iban": "DE89370400440532013000"
    },
    "stcpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "otp"
      }
    },
    "tabby": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "bizum": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "paynow": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "qpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "string"
    },
    "eps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ideal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "2 t-shirts"
    },
    "knet": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "language": "en"
    },
    "bancontact": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "benefit": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "blik": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "vipps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "twint": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "alipay_cn": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "mobilepay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "tamara": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "mbway": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "multibanco": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "wechatpay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "kakaopay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "octopus": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "p24": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "swish": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ach": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string"
      },
      "country": "st"
    },
    "sepa": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "instrument_id": "src_wkq7552u245upl5h75x24554xy",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "bank_id": "ob-natwest",
      "action": {
        "type": "select_bank",
        "banks": [
          {
            "bank_id": "ob-natwest",
            "display_name": "NatWest",
            "logo_url": "https://cdn.token.io/banks/natwest.png",
            "available": true
          }
        ]
      }
    },
    "paypal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping",
      "action": {
        "type": "sdk",
        "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
      }
    },
    "cashapp": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "customer_profile_sharing": true,
      "customer_profile": {
        "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
        "cashtag": "$CASHTAG_C_TOKEN",
        "reference_id": "value",
        "full_name": "John Middle Doe",
        "given_name": "John",
        "middle_name": "Middle",
        "family_name": "Doe",
        "suffix": "Jr.",
        "birth_date": "1990-01-01",
        "address": {
          "address_line_1": "123 Main St",
          "address_line_2": "string",
          "address_line_3": "string",
          "locality": "Springfield",
          "sublocality": "string",
          "administrative_district_level_1": "IL",
          "postal_code": "62701",
          "country": "US"
        },
        "phone_number": "5555555555",
        "email_address": "cash@cash.com",
        "customer_since": "1970-01-18T12:46:04.8Z"
      },
      "reference": "ORDER-99",
      "action": {
        "type": "redirect",
        "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
      }
    },
    "googlepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "applepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "card": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string"
      },
      "details": {
        "last4": "string",
        "bin": "string",
        "scheme": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "expires_on": "2019-08-24T14:15:22Z",
        "allow_update": true
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "stablecoin": {
      "status": "ready",
      "flags": [
        "string"
      ]
    }
  },
  "available_payment_methods": [
    "card",
    "klarna",
    "stcpay",
    "stablecoin"
  ],
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "latest_payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "requested_on": "2019-08-24T14:15:22Z",
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 6,
      "expiry_year": 2025,
      "name": "Bruce Wayne",
      "scheme": "VISA",
      "scheme_local": "Cartes_Bancaires",
      "local_schemes": [
        "cartes_bancaires",
        "visa"
      ],
      "last4": "9996",
      "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
      "bin": "45434748",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "card_wallet_type": "applepay",
      "issuer": "GOTHAM STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "avs_check": "S",
      "cvv_check": "Y",
      "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
      "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
      "account_update_status": "card_updated",
      "account_update_failure_code": "VAU009",
      "account_holder": {}
    },
    "destination": {
      "type": "bank_account",
      "id": "string"
    },
    "amount": 6540,
    "amount_requested": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "payment_plan": {
      "amount_variability": "Variable",
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "approved": true,
    "expires_on": "string",
    "status": "Authorized",
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "3ds": {
      "downgraded": false,
      "enrolled": "Y",
      "signature_valid": "Y",
      "authentication_response": "Y",
      "authentication_status_reason": "string",
      "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
      "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
      "eci": "string",
      "version": "2.1.0",
      "exemption": "low_value",
      "exemption_applied": "string",
      "challenged": true,
      "upgrade_reason": "sca_retry",
      "trusted_listing": {
        "status": "Y",
        "source": "01"
      }
    },
    "authentication": {
      "experience": "3ds"
    },
    "risk": {
      "flagged": true,
      "score": 22
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne",
      "summary": {
        "registration_date": "2023-05-01",
        "first_transaction_date": "2023-07-01",
        "last_payment_date": "2023-08-01",
        "total_order_count": 15,
        "last_payment_amount": 500,
        "is_premium_customer": true,
        "is_returning_customer": true,
        "lifetime_value": 500
      }
    },
    "billing_descriptor": {
      "name": "SUPERHEROES.COM",
      "city": "GOTHAM",
      "reference": "string",
      "local_descriptors": [
        {
          "name": "漢字",
          "character_set": "kanji"
        }
      ]
    },
    "shipping": {
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      }
    },
    "payment_ip": "90.197.169.245",
    "sender": {
      "type": "individual",
      "reference": "8285282045818",
      "first_name": "John",
      "last_name": "Jones",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    },
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ],
    "recipient": {
      "dob": "1985-05-15",
      "account_number": "5555554444",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "zip": "SW1A",
      "first_name": "John",
      "last_name": "Jones"
    },
    "processing": {
      "preferred_scheme": "cartes_bancaires",
      "app_id": "com.iap.linker_portal",
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ],
      "partner_customer_id": "2102209000001106125F8",
      "partner_payment_id": "440644309099499894406",
      "partner_code": "999111",
      "failure_code": "partner_error",
      "partner_response_code": "ER_WRONG_TICKET",
      "tax_amount": 1000,
      "locale": "en-US",
      "retrieval_reference_number": "909913440644",
      "partner_order_id": "string",
      "partner_status": "string",
      "partner_transaction_id": "string",
      "partner_error_codes": [
        "string"
      ],
      "partner_merchant_advice_code": "24",
      "partner_error_message": "string",
      "partner_authorization_code": "string",
      "partner_authorization_response_code": "string",
      "partner_fraud_status": "string",
      "pan_type_processed": "fpan",
      "fallback_source_used": false,
      "custom_payment_method_ids": [
        "string"
      ],
      "aft": true,
      "merchant_category_code": "5311",
      "scheme_merchant_id": "123456",
      "scheme": "ACCEL",
      "scheme_transaction_link_id": "string"
    },
    "items": [
      {
        "type": "digital",
        "sub_type": "stablecoin",
        "name": "Necklace",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "commodity_code": "DEF123",
        "unit_of_measure": "metres",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "tax_exempt": true,
        "discount_amount": 1000,
        "wxpay_goods_id": "1001",
        "url": "string",
        "image_url": "string",
        "service_ends_on": "2025-01-01",
        "purchase_country": "GB",
        "foreign_retailer_amount": 200
      }
    ],
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    },
    "eci": "06",
    "scheme_id": "488341541494658",
    "actions": [
      {
        "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
        "type": "Authorization",
        "response_code": "10000",
        "response_summary": "Approved"
      }
    ],
    "retry": {
      "enabled": true,
      "attempts_made": 0,
      "max_attempts": 6,
      "ends_on": "2019-08-24T14:15:22Z",
      "next_attempt_on": "2019-08-24T14:15:22Z"
    },
    "cko_network_token_available": false,
    "instruction": {
      "purpose": "financial_services"
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "actions": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
      },
      "authorize": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
      },
      "refund": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
      }
    }
  }
}
```

<h3 id="get-a-payment-setup-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment Setup details returned.|[PaymentSetup](#schemapaymentsetup)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Authentication failed. Provide a valid API key.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|You do not have permission to retrieve this Payment Setup.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment vault ), ApiSecretKey
</aside>

## Confirm a Payment Setup

<a id="opIdconfirmAPaymentSetup"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/setups/{id}/confirm/{payment_method_name}";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payments/setups/{id}/confirm/{payment_method_name}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>

Confirm a Payment Setup to begin processing the payment request with your chosen payment method.

<h3 id="confirm-a-payment-setup-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The unique identifier of the Payment Setup.|
|payment_method_name|path|string|true|The name of the payment method to process the payment with (For example, `tabby`, `klarna`, `card`).|

> Example responses

> 200 Response

```json
{
  "id": "string",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
      "type": "bacs",
      "action": {
        "type": "set_instrument"
      }
    },
    "klarna": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "sdk",
        "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
        "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
      },
      "account_holder": {
        "name": "string"
      },
      "iban": "DE89370400440532013000"
    },
    "stcpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "otp"
      }
    },
    "tabby": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "bizum": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "paynow": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "qpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "string"
    },
    "eps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ideal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "2 t-shirts"
    },
    "knet": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "language": "en"
    },
    "bancontact": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "benefit": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "blik": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "vipps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "twint": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "alipay_cn": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "mobilepay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "tamara": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "mbway": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "multibanco": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "wechatpay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "kakaopay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "octopus": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "p24": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "swish": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ach": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string"
      },
      "country": "st"
    },
    "sepa": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "instrument_id": "src_wkq7552u245upl5h75x24554xy",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "bank_id": "ob-natwest",
      "action": {
        "type": "select_bank",
        "banks": [
          {
            "bank_id": "ob-natwest",
            "display_name": "NatWest",
            "logo_url": "https://cdn.token.io/banks/natwest.png",
            "available": true
          }
        ]
      }
    },
    "paypal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping",
      "action": {
        "type": "sdk",
        "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
      }
    },
    "cashapp": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "customer_profile_sharing": true,
      "customer_profile": {
        "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
        "cashtag": "$CASHTAG_C_TOKEN",
        "reference_id": "value",
        "full_name": "John Middle Doe",
        "given_name": "John",
        "middle_name": "Middle",
        "family_name": "Doe",
        "suffix": "Jr.",
        "birth_date": "1990-01-01",
        "address": {
          "address_line_1": "123 Main St",
          "address_line_2": "string",
          "address_line_3": "string",
          "locality": "Springfield",
          "sublocality": "string",
          "administrative_district_level_1": "IL",
          "postal_code": "62701",
          "country": "US"
        },
        "phone_number": "5555555555",
        "email_address": "cash@cash.com",
        "customer_since": "1970-01-18T12:46:04.8Z"
      },
      "reference": "ORDER-99",
      "action": {
        "type": "redirect",
        "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
      }
    },
    "googlepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "applepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "card": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string"
      },
      "details": {
        "last4": "string",
        "bin": "string",
        "scheme": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "expires_on": "2019-08-24T14:15:22Z",
        "allow_update": true
      },
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "stablecoin": {
      "status": "ready",
      "flags": [
        "string"
      ]
    }
  },
  "available_payment_methods": [
    "card",
    "klarna",
    "stcpay",
    "stablecoin"
  ],
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "latest_payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "requested_on": "2019-08-24T14:15:22Z",
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 6,
      "expiry_year": 2025,
      "name": "Bruce Wayne",
      "scheme": "VISA",
      "scheme_local": "Cartes_Bancaires",
      "local_schemes": [
        "cartes_bancaires",
        "visa"
      ],
      "last4": "9996",
      "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
      "bin": "45434748",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "card_wallet_type": "applepay",
      "issuer": "GOTHAM STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "avs_check": "S",
      "cvv_check": "Y",
      "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
      "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
      "account_update_status": "card_updated",
      "account_update_failure_code": "VAU009",
      "account_holder": {}
    },
    "destination": {
      "type": "bank_account",
      "id": "string"
    },
    "amount": 6540,
    "amount_requested": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "payment_plan": {
      "amount_variability": "Variable",
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "approved": true,
    "expires_on": "string",
    "status": "Authorized",
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "3ds": {
      "downgraded": false,
      "enrolled": "Y",
      "signature_valid": "Y",
      "authentication_response": "Y",
      "authentication_status_reason": "string",
      "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
      "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
      "eci": "string",
      "version": "2.1.0",
      "exemption": "low_value",
      "exemption_applied": "string",
      "challenged": true,
      "upgrade_reason": "sca_retry",
      "trusted_listing": {
        "status": "Y",
        "source": "01"
      }
    },
    "authentication": {
      "experience": "3ds"
    },
    "risk": {
      "flagged": true,
      "score": 22
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne",
      "summary": {
        "registration_date": "2023-05-01",
        "first_transaction_date": "2023-07-01",
        "last_payment_date": "2023-08-01",
        "total_order_count": 15,
        "last_payment_amount": 500,
        "is_premium_customer": true,
        "is_returning_customer": true,
        "lifetime_value": 500
      }
    },
    "billing_descriptor": {
      "name": "SUPERHEROES.COM",
      "city": "GOTHAM",
      "reference": "string",
      "local_descriptors": [
        {
          "name": "漢字",
          "character_set": "kanji"
        }
      ]
    },
    "shipping": {
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      }
    },
    "payment_ip": "90.197.169.245",
    "sender": {
      "type": "individual",
      "reference": "8285282045818",
      "first_name": "John",
      "last_name": "Jones",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    },
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ],
    "recipient": {
      "dob": "1985-05-15",
      "account_number": "5555554444",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "zip": "SW1A",
      "first_name": "John",
      "last_name": "Jones"
    },
    "processing": {
      "preferred_scheme": "cartes_bancaires",
      "app_id": "com.iap.linker_portal",
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ],
      "partner_customer_id": "2102209000001106125F8",
      "partner_payment_id": "440644309099499894406",
      "partner_code": "999111",
      "failure_code": "partner_error",
      "partner_response_code": "ER_WRONG_TICKET",
      "tax_amount": 1000,
      "locale": "en-US",
      "retrieval_reference_number": "909913440644",
      "partner_order_id": "string",
      "partner_status": "string",
      "partner_transaction_id": "string",
      "partner_error_codes": [
        "string"
      ],
      "partner_merchant_advice_code": "24",
      "partner_error_message": "string",
      "partner_authorization_code": "string",
      "partner_authorization_response_code": "string",
      "partner_fraud_status": "string",
      "pan_type_processed": "fpan",
      "fallback_source_used": false,
      "custom_payment_method_ids": [
        "string"
      ],
      "aft": true,
      "merchant_category_code": "5311",
      "scheme_merchant_id": "123456",
      "scheme": "ACCEL",
      "scheme_transaction_link_id": "string"
    },
    "items": [
      {
        "type": "digital",
        "sub_type": "stablecoin",
        "name": "Necklace",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "commodity_code": "DEF123",
        "unit_of_measure": "metres",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "tax_exempt": true,
        "discount_amount": 1000,
        "wxpay_goods_id": "1001",
        "url": "string",
        "image_url": "string",
        "service_ends_on": "2025-01-01",
        "purchase_country": "GB",
        "foreign_retailer_amount": 200
      }
    ],
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    },
    "eci": "06",
    "scheme_id": "488341541494658",
    "actions": [
      {
        "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
        "type": "Authorization",
        "response_code": "10000",
        "response_summary": "Approved"
      }
    ],
    "retry": {
      "enabled": true,
      "attempts_made": 0,
      "max_attempts": 6,
      "ends_on": "2019-08-24T14:15:22Z",
      "next_attempt_on": "2019-08-24T14:15:22Z"
    },
    "cko_network_token_available": false,
    "instruction": {
      "purpose": "financial_services"
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "actions": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
      },
      "authorize": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
      },
      "refund": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
      }
    }
  }
}
```

<h3 id="confirm-a-payment-setup-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment Setup confirmation attempt successful.|[PaymentSetup](#schemapaymentsetup)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Authentication failed. Provide a valid API key or access token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|You do not have permission to update this Payment Setup.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|One or more fields failed validation. See the response body for details.|[PaymentSetupValidationError](#schemapaymentsetupvalidationerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment vault ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-payments">Payments</h1>

Process and manage payments from a variety of sources and to various destinations all within one integration.

## Request a payment or payout

<a id="opIdrequestAPaymentOrPayout"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Payments;
using Checkout.Payments.Request;
using Checkout.Payments.Request.Source;
using Checkout.Payments.Response;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

PaymentRequest request = new PaymentRequest
{
    Source = new RequestTokenSource {Token = "tok_4gzeau5o2uqubbk6fufs3m7p54"},
    Amount = 10,
    Currency = Currency.USD,
    PaymentType = PaymentType.Recurring,
    Reference = "reference",
    Description = "Set of 3 masks",
    Capture = true,
    CaptureOn = new DateTime(),
    Customer =
        new CustomerRequest
        {
            Id = "cus_udst2tfldj6upmye2reztkmm4i",
            Email = "email@docs.checkout.com",
            Name = "FirstName LastName"
        },
    BillingDescriptor = new BillingDescriptor {Name = "SUPERHEROES.COM", City = "GOTHAM"},
    Shipping =
        new ShippingDetails
        {
            Address = new Address
            {
                AddressLine1 = "123 High St.",
                AddressLine2 = "Flat 456",
                City = "London",
                State = "GB",
                Zip = "SW1A 1AA",
                Country = CountryCode.GB
            },
            Phone = new Phone {Number = "4155552671", CountryCode = "1"}
        },
    ThreeDs =
        new ThreeDsRequest
        {
            Enabled = true,
            AttemptN3D = true,
            Eci = "05",
            Cryptogram = "AgAAAAAAAIR8CQrXcIhbQAAAAAA=",
            Xid = "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
            Version = "2.0.1"
        },
    PreviousPaymentId = "pay_fun26akvvjjerahhctaq2uzhu4",
    Risk = new RiskRequest {Enabled = false},
    SuccessUrl = "https://example.com/payments/success",
    FailureUrl = "https://example.com/payments/failure",
    PaymentIp = "192.168.0.1",
    Recipient = new PaymentRecipient
    {
        DateOfBirth = "1985-05-15", AccountNumber = "5555554444", Zip = "SW1A", LastName = "LastName",
    },
    Metadata = new Dictionary<string, object> {{"coupon_code", "NY2018"}, {"partner_id", 123989}}
};

try
{
    PaymentResponse response = await api.PaymentsClient().RequestPayment(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments"
	"github.com/checkout/checkout-sdk-go/payments/nas"
	"github.com/checkout/checkout-sdk-go/payments/nas/sessions"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

source := sources.NewRequestCardSource()
source.Number = "123456789"
source.ExpiryMonth = 10
source.ExpiryYear = 2027
source.Cvv = "123"
source.Stored = false

sender := nas.NewRequestIndividualSender()
sender.FirstName = "FirstName"
sender.LastName = "LastName"
sender.Address = &common.Address{
	AddressLine1: "123 High St.",
	AddressLine2: "Flat 456",
	City:         "London",
	State:        "GB",
	Zip:          "SW1A 1AA",
	Country:      common.GB,
}
sender.Identification = &nas.Identification{
	Type:           nas.DrivingLicence,
	Number:         "1234",
	IssuingCountry: common.GB,
}

request := nas.PaymentRequest{
	Source:              source,
	Amount:              10,
	Currency:            common.GBP,
	Reference:           "reference",
	Capture:             false,
	ThreeDsRequest:      &payments.ThreeDsRequest{
		Enabled:               true,
		ChallengeIndicator:    common.NoChallengeRequested,
	},
	ProcessingChannelId: "processing_channel_id",
	SuccessUrl:          "https://docs.checkout.com/success",
	FailureUrl:          "https://docs.checkout.com/failure",
	Sender:              sender,
}

response, err := api.Payments.RequestPayment(request, nil) // or "RequestPayout(request PayoutRequest, idempotencyKey *string)"
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.AccountHolderIdentification;
import com.checkout.common.AccountHolderIdentificationType;
import com.checkout.common.Address;
import com.checkout.common.ChallengeIndicator;
import com.checkout.common.CountryCode;
import com.checkout.common.Currency;
import com.checkout.payments.ThreeDSRequest;
import com.checkout.payments.request.PaymentRequest;
import com.checkout.payments.request.source.RequestCardSource;
import com.checkout.payments.response.PaymentResponse;
import com.checkout.payments.sender.PaymentIndividualSender;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

RequestCardSource source = RequestCardSource.builder()
    .number("123456789")
    .expiryMonth(10)
    .expiryYear(2027)
    .cvv("123")
    .stored(false)
    .build();

PaymentIndividualSender sender = PaymentIndividualSender.builder()
    .firstName("FirstName")
    .lastName("LastName")
    .address(Address.builder()
        .addressLine1("123 High St.")
        .addressLine2("Flat 456")
        .city("London")
        .state("GB")
        .zip("SW1A 1AA")
        .country(CountryCode.GB)
        .build())
    .identification(AccountHolderIdentification.builder()
        .type(AccountHolderIdentificationType.DRIVING_LICENCE)
        .number("1234")
        .issuingCountry(CountryCode.GB)
        .build())
    .build();

ThreeDSRequest threeDSRequest = ThreeDSRequest.builder()
    .enabled(true)
    .challengeIndicator(ChallengeIndicator.NO_CHALLENGE_REQUESTED)
    .build();

PaymentRequest request = PaymentRequest.builder()
    .source(source)
    .sender(sender)
    .capture(false)
    .reference("reference")
    .amount(10L)
    .currency(Currency.GBP)
    .threeDS(threeDSRequest)
    .successUrl("https://docs.checkout.com/success")
    .failureUrl("https://docs.checkout.com/failure")
    .build();

try {
    PaymentResponse response = api.paymentsClient().requestPayment(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const payment = await cko.payments.request({
		source: {
			// inferred type: "token"
			token: 'tok_bzi43qc6jeee5mmnfo4gnsnera', // Generated by Checkout.Frames
			billing_address: {
				address_line1: '123 High St.',
				address_line2: 'Flat 456',
				city: 'London',
				state: 'GB',
				zip: 'W1W W1W',
				country: 'GB',
			},
			phone: {
				country_code: '44',
				number: '7123456789',
			},
		},
		currency: 'USD',
		amount: 1000,
		payment_type: 'Regular',
		reference: 'ORDER 1234',
		description: 'Mint Tea',
		customer: {
			email: 'new_user@email.com',
			name: 'John Smith',
		},
		metadata: {
			value: 'My value',
		},
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Currency;
use Checkout\Common\CustomerRequest;
use Checkout\Common\Phone;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Payments\Request\PaymentRequest;
use Checkout\Payments\Request\Source\RequestCardSource;
use Checkout\Payments\Sender\Identification;
use Checkout\Payments\Sender\IdentificationType;
use Checkout\Payments\Sender\PaymentIndividualSender;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$requestCardSource = new RequestCardSource();
$requestCardSource->name = "Name";
$requestCardSource->number = "Number";
$requestCardSource->expiry_year = 2026;
$requestCardSource->expiry_month = 10;
$requestCardSource->cvv = "123";
$requestCardSource->billing_address = $address;
$requestCardSource->phone = $phone;

$customerRequest = new CustomerRequest();
$customerRequest->email = "email@docs.checkout.com";
$customerRequest->name = "Customer";

$identification = new Identification();
$identification->issuing_country = Country::$GT;
$identification->number = "1234";
$identification->type = IdentificationType::$drivingLicence;

$paymentIndividualSender = new PaymentIndividualSender();
$paymentIndividualSender->fist_name = "FirstName";
$paymentIndividualSender->last_name = "LastName";
$paymentIndividualSender->address = $address;
$paymentIndividualSender->identification = $identification;

$request = new PaymentRequest();
$request->source = $requestCardSource;
$request->capture = true;
$request->reference = "reference";
$request->amount = 10;
$request->currency = Currency::$USD;
$request->customer = $customerRequest;
$request->sender = $paymentIndividualSender;

try {
    $response = $api->getPaymentsClient()->requestPayment($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone, Address, CustomerRequest
from checkout_sdk.common.enums import Country, Currency
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.payments.payments import PaymentRequestCardSource, Identification, IdentificationType, 
                                        PaymentIndividualSender, PaymentRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

request_card_source = PaymentRequestCardSource()
request_card_source.number = 'number'
request_card_source.expiry_month = 10
request_card_source.expiry_year = 2027
request_card_source.cvv = 123
request_card_source.name = 'Name'
request_card_source.billing_address = address
request_card_source.phone = phone

customer_request = CustomerRequest()
customer_request.email = 'email@docs.checkout.com'
customer_request.name = 'Name'

identification = Identification()
identification.issuing_country = Country.GT
identification.number = '1234'
identification.type = IdentificationType.DRIVING_LICENSE

payment_individual_sender = PaymentIndividualSender()
payment_individual_sender.first_name = 'First'
payment_individual_sender.last_name = 'Last'
payment_individual_sender.address = address
payment_individual_sender.identification = identification

request = PaymentRequest()
request.source = request_card_source
request.reference = 'reference'
request.amount = 10
request.currency = Currency.USD
request.capture = False
request.customer = customer_request
request.sender = payment_individual_sender

try:
    response = api.payments.request_payment(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
# Bad arguments

except CheckoutAuthorizationException as err:
# Invalid authorization
```

`POST /payments`

Send a payment or payout.<br><br><b>Note</b>: successful payout requests will always return a 202 response.

> Body parameter

```json
{
  "source": {
    "number": "4543474002249996",
    "expiry_month": 6,
    "expiry_year": 2030,
    "name": "Bruce Wayne",
    "cvv": "956",
    "stored": true,
    "store_for_future_use": false,
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "account_holder": {},
    "allow_update": false,
    "type": "card"
  },
  "fallback_source": {
    "number": "4543474002249996",
    "expiry_month": 6,
    "expiry_year": 2030,
    "name": "Bruce Wayne",
    "cvv": "956",
    "stored": true,
    "store_for_future_use": false,
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "account_holder": {},
    "allow_update": false,
    "type": "card"
  },
  "amount": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "merchant_initiated": true,
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "authorization_type": "Estimated",
  "partial_authorization": {
    "enabled": true
  },
  "capture": true,
  "capture_on": "2019-08-24T14:15:22Z",
  "expire_on": "2019-08-24T14:15:22Z",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "tax_number": "1350693505279",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "billing_descriptor": {
    "name": "SUPERHEROES.COM",
    "city": "GOTHAM",
    "reference": "string",
    "local_descriptors": [
      {
        "name": "漢字",
        "character_set": "kanji"
      }
    ]
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "authentication": {
    "preferred_experiences": [
      "google_spa",
      "3ds"
    ]
  },
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "previous_payment_id": "pay_fun26akvvjjerahhctaq2uzhu4",
  "risk": {
    "enabled": false,
    "device_session_id": "dsid_ipsmclhxwq72phhr32iwfvrflm",
    "device": {
      "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
      "network": {
        "ipv4": "63.33.82.13",
        "ipv6": "2001:0000:130F:0000:0000:09C0:876A:130B",
        "tor": false,
        "vpn": false,
        "proxy": false
      },
      "provider": {
        "id": "1728646225211.AfUgxG",
        "name": "List [ \"merchant\", \"fingerprintjs\", \"riskify\" ]"
      },
      "timestamp": "2024-02-06T15:00:00.000Z",
      "timezone": "60",
      "virtual_machine": false,
      "incognito": false,
      "jailbroken": false,
      "rooted": false,
      "java_enabled": false,
      "javascript_enabled": false,
      "language": "FR-fr",
      "color_depth": "16",
      "screen_height": "1080",
      "screen_width": "1920",
      "user_agent_client_hint": "string",
      "iframe_payment_allowed": true,
      "accept_header": "string"
    }
  },
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/fail",
  "payment_ip": "90.197.169.245",
  "sender": {
    "type": "individual",
    "reference": "string",
    "first_name": "John",
    "last_name": "Jones",
    "date_of_birth": "1985-05-15",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "identification": {
      "type": "driving_licence",
      "number": "1234",
      "issuing_country": "GT"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "zip": "SW1A",
    "first_name": "John",
    "last_name": "Jones"
  },
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "processing": {
    "order_id": "123456789",
    "tax_amount": 3000,
    "surcharge_amount": 200,
    "discount_amount": 0,
    "duty_amount": 0,
    "shipping_amount": 300,
    "shipping_tax_amount": 100,
    "aft": true,
    "preferred_scheme": "mastercard",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "product_type": "QR Code",
    "open_id": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
    "original_order_amount": 10,
    "receipt_id": "10",
    "terminal_type": "WAP",
    "os_type": "ANDROID",
    "invoice_id": "string",
    "locale": "en-US",
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ],
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "service_type": "standard",
    "partner_code": "902111",
    "provision_network_token": true,
    "card_type": "credit",
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "GB",
    "foreign_retailer_amount": 200,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    },
    "scheme_transaction_link_id": "string"
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "retry": {
    "enabled": true,
    "dunning": {
      "enabled": true,
      "max_attempts": 6,
      "end_after_days": 30
    },
    "downtime": {
      "enabled": true
    }
  },
  "subscription": {
    "id": "string"
  },
  "metadata": {
    "coupon_code": "NY2018"
  },
  "segment": {
    "brand": "Acme Corporation",
    "business_category": "Inward Payments",
    "market": "UK"
  },
  "instruction": {
    "purpose": "donations"
  },
  "routing": {
    "attempts": [
      {
        "scheme": "accel"
      }
    ]
  }
}
```

<h3 id="request-a-payment-or-payout-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|body|body|any|false|none|

> Example responses

> Payment processed successfully

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "action_id": "act_mbabizu24mvu3mela5njyhpit4",
  "amount": 6540,
  "currency": "USD",
  "approved": true,
  "status": "Authorized",
  "auth_code": "770687",
  "response_code": "10000",
  "response_summary": "Approved",
  "3ds": {
    "downgraded": true,
    "enrolled": "N"
  },
  "risk": {
    "flagged": true
  },
  "source": {
    "type": "card",
    "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "GB",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "scheme": "Visa",
    "last4": "6584",
    "fingerprint": "B16D9C2EF0C861A8825C9BD59CCE9171D84EBC45E89CC792B5D1D2D0DDE3DAB7",
    "bin": "448504",
    "card_type": "CREDIT",
    "card_category": "COMMERCIAL",
    "issuer": "GE CAPITAL FINANCIAL, INC.",
    "issuer_country": "US",
    "product_type": "PURCHASING",
    "avs_check": "G",
    "cvv_check": "Y",
    "payment_account_reference": "V001898055688657091"
  },
  "customer": {
    "id": "cus_udst2tfldj6upmye2reztkmm4i",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "processed_on": "2019-09-10T10:11:12Z",
  "reference": "ORD-5023-4E89",
  "processing": {
    "retrieval_reference_number": "909913440644",
    "acquirer_transaction_id": "440644309099499894406",
    "recommendation_code": "02",
    "partner_order_id": "5GK24544NA744002L",
    "scheme_merchant_id": "123456"
  },
  "eci": "06",
  "scheme_id": "489341065491658",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4"
    },
    "actions": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions"
    },
    "void": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids"
    },
    "capture": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures"
    }
  }
}
```

> 202 Response

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Pending",
  "reference": "ORD-5023-4E89",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "3ds": {
    "downgraded": false,
    "enrolled": "Y",
    "upgrade_reason": "sca_retry"
  },
  "subscription": {
    "id": "string"
  },
  "processing": {
    "continuation_payload": "{\\\"prepay_id\\\":\\\"wx02161421698644ab471821297252eb0000\\\",\\\"partner_id\\\":\\\"1900012731\\\",\\\"timestamp\\\":1651479262,\\\"app_id\\\":\\\"sub_application_id\\\",\\\"nonce\\\":\\\"476d17edadf44915ad533107bd3c71c2\\\",\\\"sign\\\":\\\"QM1CCVAkexZLq00Uz/IxgbqC2ke7Xl9xUayutALc1EebLT1cI85H0biNNjhzQrzFdJ0YCq8KR2Hc9bD01vxRsn18fHzE5bhvn2qlUSOeY7hATfaLYS7+f+gKVj+0iIuUp3qamquErrKYl1g1Vhvlwn1U8TrcjhU0w666YYJuwIP9qPNy6F8wj3ORWM1uYmB9D4v09sTnmZfBPFwuGJzj2PTBGyvoKLu+V1T1HzlC2rwhpDmrSCq0rcFL2smztWGVktpZ2NoggEAVWLjHWsvS8OmzgeosM3ltoCeWjlp1SusmXtlMtUJWyjiVQYHnjb/a42NYk/qynZ/w+BAqLTlDKA==\\\",\\\"pkg\\\":\\\"Sign=WXPay\\\"}",
    "partner_payment_id": "440644309099499894406",
    "pan_type_processed": "fpan",
    "fallback_source_used": false,
    "cko_network_token_available": false,
    "scheme_merchant_id": "123456",
    "payment_reference": "999999964",
    "service_supplier_id": "11854"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4"
    },
    "redirect": {
      "href": "https://{prefix}.api.checkout.com/3ds/pay_mbabizu24mvu3mela5njyhpit4",
      "mobile": {
        "android": {
          "href": "app-scheme://android.com"
        },
        "ios": {
          "href": "app-scheme://ios.com"
        }
      },
      "qr_code": {
        "image": "https://{prefix}.api.sandbox.checkout.com/qr/medium",
        "text": "abc"
      }
    }
  }
}
```

<h3 id="request-a-payment-or-payout-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Payment processed successfully|[PaymentResponse](#schemapaymentresponse)|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Payment asynchronous or further action required|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests or duplicate request detected|Inline|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

<h3 id="request-a-payment-or-payout-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|status|Pending|
|pan_type_processed|fpan|
|pan_type_processed|dpan|
|payment_type|Regular|
|payment_type|Recurring|
|payment_type|Installment|
|payment_type|PayLater|
|status|Pending|
|status|Accepted|
|status|Rejected|
|status|Accepted|
|status|Rejected|
|status|Pending|

Status Code **429**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment ), ApiSecretKey
</aside>

## Get payment lists

<a id="opIdgetPaymentsList"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

query := payments.QueryRequest{
	Limit:     10,
	Skip:      0,
	Reference: "reference",
}

response, err := api.Payments.RequestPaymentList(query)
if err != nil {
	return nil, err
}

return response, nil
```

`GET /payments`

Returns a list of your business' payments that match the specified reference. Results are returned in reverse chronological order, with the most recent payments shown first.

This will only return payments initiated from June 2022 onwards. Payments initiated before this date may return a `404` error code if you attempt to retrieve them.

<h3 id="get-payment-lists-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|limit|query|integer(int32)|false|The numbers of results to retrieve|
|skip|query|integer(int64)|false|The number of results to skip|
|reference|query|string|true|A reference, such as an order ID, that can be used to identify the payment|

> Example responses

> 200 Response

```json
{
  "limit": 10,
  "skip": 10,
  "total_count": 1,
  "data": [
    {
      "id": "pay_mbabizu24mvu3mela5njyhpit4",
      "requested_on": "2019-08-24T14:15:22Z",
      "source": {
        "type": "card",
        "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
        "billing_address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "phone": {
          "country_code": "+1",
          "number": "415 555 2671"
        },
        "expiry_month": 6,
        "expiry_year": 2025,
        "name": "Bruce Wayne",
        "scheme": "VISA",
        "scheme_local": "Cartes_Bancaires",
        "local_schemes": [
          "cartes_bancaires",
          "visa"
        ],
        "last4": "9996",
        "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
        "bin": "45434748",
        "card_type": "CREDIT",
        "card_category": "CONSUMER",
        "card_wallet_type": "applepay",
        "issuer": "GOTHAM STATE BANK",
        "issuer_country": "US",
        "product_id": "F",
        "product_type": "CLASSIC",
        "avs_check": "S",
        "cvv_check": "Y",
        "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
        "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
        "account_update_status": "card_updated",
        "account_update_failure_code": "VAU009",
        "account_holder": {}
      },
      "destination": {
        "type": "bank_account",
        "id": "string"
      },
      "amount": 6540,
      "amount_requested": 6540,
      "currency": "USD",
      "payment_type": "Recurring",
      "payment_plan": {
        "amount_variability": "Variable",
        "days_between_payments": 28,
        "total_number_of_payments": 5,
        "current_payment_number": 3,
        "expiry": "20251031",
        "name": "Subscription 1234",
        "start_date": "20260507",
        "amount": 1234
      },
      "reference": "ORD-5023-4E89",
      "description": "Set of 3 masks",
      "approved": true,
      "expires_on": "string",
      "status": "Authorized",
      "balances": {
        "total_authorized": 6540,
        "total_voided": 0,
        "available_to_void": 6540,
        "total_captured": 0,
        "available_to_capture": 6540,
        "total_refunded": 0,
        "available_to_refund": 0
      },
      "3ds": {
        "downgraded": false,
        "enrolled": "Y",
        "signature_valid": "Y",
        "authentication_response": "Y",
        "authentication_status_reason": "string",
        "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
        "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
        "eci": "string",
        "version": "2.1.0",
        "exemption": "low_value",
        "exemption_applied": "string",
        "challenged": true,
        "upgrade_reason": "sca_retry",
        "trusted_listing": {
          "status": "Y",
          "source": "01"
        }
      },
      "authentication": {
        "experience": "3ds"
      },
      "risk": {
        "flagged": true,
        "score": 22
      },
      "customer": {
        "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
        "email": "brucewayne@gmail.com",
        "name": "Bruce Wayne",
        "summary": {
          "registration_date": "2023-05-01",
          "first_transaction_date": "2023-07-01",
          "last_payment_date": "2023-08-01",
          "total_order_count": 15,
          "last_payment_amount": 500,
          "is_premium_customer": true,
          "is_returning_customer": true,
          "lifetime_value": 500
        }
      },
      "billing_descriptor": {
        "name": "SUPERHEROES.COM",
        "city": "GOTHAM",
        "reference": "string",
        "local_descriptors": [
          {
            "name": "漢字",
            "character_set": "kanji"
          }
        ]
      },
      "shipping": {
        "address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "phone": {
          "country_code": "+1",
          "number": "415 555 2671"
        }
      },
      "payment_ip": "90.197.169.245",
      "sender": {
        "type": "individual",
        "reference": "8285282045818",
        "first_name": "John",
        "last_name": "Jones",
        "address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        }
      },
      "amount_allocations": [
        {
          "id": "ent_w4jelhppmfiufdnatam37wrfc4",
          "amount": 1000,
          "reference": "ORD-5023-4E89",
          "commission": {
            "amount": 1000,
            "percentage": 1.125
          }
        }
      ],
      "recipient": {
        "dob": "1985-05-15",
        "account_number": "5555554444",
        "address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "zip": "SW1A",
        "first_name": "John",
        "last_name": "Jones"
      },
      "processing": {
        "preferred_scheme": "cartes_bancaires",
        "app_id": "com.iap.linker_portal",
        "airline_data": [
          {
            "ticket": {
              "number": "045-21351455613",
              "issue_date": "2023-05-20",
              "issuing_carrier_code": "AI",
              "travel_package_indicator": "B",
              "travel_agency_name": "World Tours",
              "travel_agency_code": "01"
            },
            "passenger": [
              {
                "first_name": "John",
                "last_name": "White",
                "date_of_birth": "1990-05-26",
                "address": {
                  "country": "US"
                }
              }
            ],
            "flight_leg_details": [
              {
                "flight_number": "101",
                "carrier_code": "BA",
                "class_of_travelling": "J",
                "departure_airport": "LHR",
                "departure_date": "2023-06-19",
                "departure_time": "15:30",
                "arrival_airport": "LAX",
                "stop_over_code": "x",
                "fare_basis_code": "SPRSVR"
              }
            ]
          }
        ],
        "accommodation_data": [
          {
            "name": "The Sea View Hotel",
            "booking_reference": "HOTEL123",
            "check_in_date": "2023-06-20",
            "check_out_date": "2023-06-23",
            "address": {
              "address_line1": "123 Beach Road",
              "zip": "10001"
            },
            "state": "FL",
            "country": "USA",
            "city": "Los Angeles",
            "number_of_rooms": 2,
            "guests": [
              {
                "first_name": "Jane",
                "last_name": "Doe",
                "date_of_birth": "1985-07-14"
              }
            ],
            "room": [
              {
                "rate": "70",
                "number_of_nights_at_room_rate": "3"
              }
            ],
            "property_phone": [
              {
                "country_code": "44",
                "number": "7123456789"
              }
            ],
            "customer_service_phone": [
              {
                "country_code": "44",
                "number": "7123456789"
              }
            ]
          }
        ],
        "partner_customer_id": "2102209000001106125F8",
        "partner_payment_id": "440644309099499894406",
        "partner_code": "999111",
        "failure_code": "partner_error",
        "partner_response_code": "ER_WRONG_TICKET",
        "tax_amount": 1000,
        "locale": "en-US",
        "retrieval_reference_number": "909913440644",
        "partner_order_id": "string",
        "partner_status": "string",
        "partner_transaction_id": "string",
        "partner_error_codes": [
          "string"
        ],
        "partner_merchant_advice_code": "24",
        "partner_error_message": "string",
        "partner_authorization_code": "string",
        "partner_authorization_response_code": "string",
        "partner_fraud_status": "string",
        "pan_type_processed": "fpan",
        "fallback_source_used": false,
        "custom_payment_method_ids": [
          "string"
        ],
        "aft": true,
        "merchant_category_code": "5311",
        "scheme_merchant_id": "123456",
        "scheme": "ACCEL",
        "scheme_transaction_link_id": "string"
      },
      "items": [
        {
          "type": "digital",
          "sub_type": "stablecoin",
          "name": "Necklace",
          "quantity": 2,
          "unit_price": 50,
          "reference": "858818ac",
          "commodity_code": "DEF123",
          "unit_of_measure": "metres",
          "total_amount": 29000,
          "tax_rate": 2000,
          "tax_amount": 1000,
          "tax_exempt": true,
          "discount_amount": 1000,
          "wxpay_goods_id": "1001",
          "url": "string",
          "image_url": "string",
          "service_ends_on": "2025-01-01",
          "purchase_country": "GB",
          "foreign_retailer_amount": 200
        }
      ],
      "metadata": {
        "coupon_code": "NY2018",
        "partner_id": 123989
      },
      "eci": "06",
      "scheme_id": "488341541494658",
      "actions": [
        {
          "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
          "type": "Authorization",
          "response_code": "10000",
          "response_summary": "Approved"
        }
      ],
      "retry": {
        "enabled": true,
        "attempts_made": 0,
        "max_attempts": 6,
        "ends_on": "2019-08-24T14:15:22Z",
        "next_attempt_on": "2019-08-24T14:15:22Z"
      },
      "cko_network_token_available": false,
      "instruction": {
        "purpose": "financial_services"
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
        },
        "actions": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
        },
        "authorize": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
        },
        "refund": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
        }
      }
    }
  ]
}
```

<h3 id="get-payment-lists-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payments retrieved successfully|[PaymentPaged](#schemapaymentpaged)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|[Error](#schemaerror)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable paging|[PagingError](#schemapagingerror)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-details ), ApiSecretKey
</aside>

## Get payment details

<a id="opIdgetPaymentDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments.Response;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    GetPaymentResponse response = await api.PaymentsClient().GetPaymentDetails("payment_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Payments.GetPaymentDetails("payment_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.response.GetPaymentResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    GetPaymentResponse response = api.paymentsClient().getPayment("payment_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const payment = await cko.payments.get('pay_je5hbbb4u3oe7k4u3lbwlu3zkq');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getPaymentsClient()->getPaymentDetails("payment_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

try:
    response = api.payments.get_payment_details('payment_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /payments/{id}`

Returns the details of the payment with the specified identifier string.

If the payment method requires a redirection to a third party (e.g., 3D Secure),
the redirect URL back to your site will include a `cko-session-id` query parameter
containing a payment session ID that can be used to obtain the details of the payment, for example:

https://example.com/success?cko-session-id=sid_ubfj2q76miwundwlk72vxt2i7q.

<h3 id="get-payment-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The payment or payment session identifier|

> Example responses

> 200 Response

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "requested_on": "2019-08-24T14:15:22Z",
  "source": {
    "type": "card",
    "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "expiry_month": 6,
    "expiry_year": 2025,
    "name": "Bruce Wayne",
    "scheme": "VISA",
    "scheme_local": "Cartes_Bancaires",
    "local_schemes": [
      "cartes_bancaires",
      "visa"
    ],
    "last4": "9996",
    "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
    "bin": "45434748",
    "card_type": "CREDIT",
    "card_category": "CONSUMER",
    "card_wallet_type": "applepay",
    "issuer": "GOTHAM STATE BANK",
    "issuer_country": "US",
    "product_id": "F",
    "product_type": "CLASSIC",
    "avs_check": "S",
    "cvv_check": "Y",
    "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
    "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
    "account_update_status": "card_updated",
    "account_update_failure_code": "VAU009",
    "account_holder": {}
  },
  "destination": {
    "type": "bank_account",
    "id": "string"
  },
  "amount": 6540,
  "amount_requested": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "approved": true,
  "expires_on": "string",
  "status": "Authorized",
  "balances": {
    "total_authorized": 6540,
    "total_voided": 0,
    "available_to_void": 6540,
    "total_captured": 0,
    "available_to_capture": 6540,
    "total_refunded": 0,
    "available_to_refund": 0
  },
  "3ds": {
    "downgraded": false,
    "enrolled": "Y",
    "signature_valid": "Y",
    "authentication_response": "Y",
    "authentication_status_reason": "string",
    "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
    "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
    "eci": "string",
    "version": "2.1.0",
    "exemption": "low_value",
    "exemption_applied": "string",
    "challenged": true,
    "upgrade_reason": "sca_retry",
    "trusted_listing": {
      "status": "Y",
      "source": "01"
    }
  },
  "authentication": {
    "experience": "3ds"
  },
  "risk": {
    "flagged": true,
    "score": 22
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "billing_descriptor": {
    "name": "SUPERHEROES.COM",
    "city": "GOTHAM",
    "reference": "string",
    "local_descriptors": [
      {
        "name": "漢字",
        "character_set": "kanji"
      }
    ]
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "payment_ip": "90.197.169.245",
  "sender": {
    "type": "individual",
    "reference": "8285282045818",
    "first_name": "John",
    "last_name": "Jones",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "zip": "SW1A",
    "first_name": "John",
    "last_name": "Jones"
  },
  "processing": {
    "preferred_scheme": "cartes_bancaires",
    "app_id": "com.iap.linker_portal",
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ],
    "partner_customer_id": "2102209000001106125F8",
    "partner_payment_id": "440644309099499894406",
    "partner_code": "999111",
    "failure_code": "partner_error",
    "partner_response_code": "ER_WRONG_TICKET",
    "tax_amount": 1000,
    "locale": "en-US",
    "retrieval_reference_number": "909913440644",
    "partner_order_id": "string",
    "partner_status": "string",
    "partner_transaction_id": "string",
    "partner_error_codes": [
      "string"
    ],
    "partner_merchant_advice_code": "24",
    "partner_error_message": "string",
    "partner_authorization_code": "string",
    "partner_authorization_response_code": "string",
    "partner_fraud_status": "string",
    "pan_type_processed": "fpan",
    "fallback_source_used": false,
    "custom_payment_method_ids": [
      "string"
    ],
    "aft": true,
    "merchant_category_code": "5311",
    "scheme_merchant_id": "123456",
    "scheme": "ACCEL",
    "scheme_transaction_link_id": "string"
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "eci": "06",
  "scheme_id": "488341541494658",
  "actions": [
    {
      "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
      "type": "Authorization",
      "response_code": "10000",
      "response_summary": "Approved"
    }
  ],
  "retry": {
    "enabled": true,
    "attempts_made": 0,
    "max_attempts": 6,
    "ends_on": "2019-08-24T14:15:22Z",
    "next_attempt_on": "2019-08-24T14:15:22Z"
  },
  "cko_network_token_available": false,
  "instruction": {
    "purpose": "financial_services"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "actions": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
    },
    "authorize": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
    },
    "refund": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
    }
  }
}
```

<h3 id="get-payment-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|[Error](#schemaerror)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|[Error](#schemaerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|

<h3 id="get-payment-details-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|card|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|card_wallet_type|applepay|
|card_wallet_type|googlepay|
|account_update_status|card_updated|
|account_update_status|card_expiry_updated|
|account_update_status|card_closed|
|account_update_status|contact_cardholder|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|alma|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|bancontact|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|blik|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|currency_account|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|eps|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|ideal|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|klarna|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|knet|
|language|ar|
|language|en|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|multibanco|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|p24|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|paypal|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|qpay|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|sepa|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|bacs|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|swish|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|sequra|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|
|*anonymous*|tamara|
|type|bank_account|
|payment_type|Regular|
|payment_type|Recurring|
|payment_type|MOTO|
|payment_type|Installment|
|payment_type|PayLater|
|payment_type|Unscheduled|
|amount_variability|Fixed|
|amount_variability|Variable|
|status|Pending|
|status|Authorized|
|status|Card Verified|
|status|Voided|
|status|Partially Captured|
|status|Captured|
|status|Partially Refunded|
|status|Refunded|
|status|Declined|
|status|Canceled|
|status|Expired|
|status|Paid|
|status|Retry Scheduled|
|authentication_response|Y|
|authentication_response|N|
|authentication_response|U|
|authentication_response|A|
|authentication_response|C|
|authentication_response|D|
|authentication_response|R|
|authentication_response|I|
|exemption|3ds_outage|
|exemption|data_share|
|exemption|low_risk_program|
|exemption|low_value|
|exemption|none|
|exemption|other|
|exemption|out_of_sca_scope|
|exemption|sca_delegation|
|exemption|secure_corporate_payment|
|exemption|transaction_risk_assessment|
|exemption|trusted_listing|
|exemption|trusted_listing_prompt|
|status|Y|
|status|N|
|status|E|
|status|P|
|status|R|
|status|U|
|experience|google_spa|
|experience|3ds|
|*anonymous*|kanji|
|*anonymous*|katakana|
|type|individual|
|type|corporate|
|type|instrument|
|type|individual|
|type|corporate|
|type|instrument|
|type|individual|
|type|corporate|
|type|instrument|
|type|individual|
|type|corporate|
|type|instrument|
|preferred_scheme|mastercard|
|preferred_scheme|visa|
|preferred_scheme|cartes_bancaires|
|pan_type_processed|fpan|
|pan_type_processed|dpan|
|type|digital|
|type|discount|
|type|physical|
|sub_type|blockchain|
|sub_type|cbdc|
|sub_type|cryptocurrency|
|sub_type|nft|
|sub_type|stablecoin|
|type|Authorization|
|type|Card Verification|
|type|Void|
|type|Capture|
|type|Refund|
|status|Pending|
|status|Paid|
|status|Declined|
|status|Returned|
|type|individual|
|type|corporate|
|type|instrument|
|charge_bearer|OUR|
|charge_bearer|SHA|
|scheme|swift|
|scheme|local|
|scheme|instant|
|type|currency_account|
|type|token|
|type|id|
|type|card|
|type|individual|
|type|corporate|
|type|government|
|card_type|UNKNOWN|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|UNKNOWN|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|status|pending|
|status|approved|
|status|declined|
|type|individual|
|type|corporate|
|type|government|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-details ), ApiSecretKey
</aside>

## Get payment actions

<a id="opIdgetPaymentActions"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    ItemsResponse<PaymentAction> response = await api.PaymentsClient().GetPaymentActions("payment_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Payments.GetPaymentActions("payment_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.ItemsResponse;
import com.checkout.OAuthScope;
import com.checkout.payments.PaymentAction;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    ItemsResponse<PaymentAction> response = api.paymentsClient().getPaymentActions("payment_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const payment = await cko.payments.getActions('pay_je5hbbb4u3oe7k4u3lbwlu3zkq');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getPaymentsClient()->getPaymentActions("payment_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY, OAuthScopes.GATEWAY_PAYMENT_DETAILS]) 
    .build()
)

try:
    response = api.payments.get_payment_actions('payment_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /payments/{id}/actions`

Returns all the actions associated with a payment ordered by processing date in descending order (latest first).

<h3 id="get-payment-actions-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The payment identifier|

> Example responses

> 200 Response

```json
[
  {
    "id": "act_fd3h6evhpn3uxdoqbuu3lqnqbm",
    "type": "Refund",
    "processed_on": "2018-01-20T10:30:48Z",
    "amount": 1000,
    "approved": true,
    "response_code": "10000",
    "response_summary": "Approved"
  },
  {
    "id": "act_gefycn3jcvuupboxfmqrhk2aym",
    "type": "Capture",
    "processed_on": "2018-01-17T10:30:48Z",
    "amount": 6540,
    "approved": true,
    "response_code": "10000",
    "response_summary": "Approved",
    "processing": {
      "acquirer_reference_number": "24021219099007452440793",
      "acquirer_transaction_id": "00745244079"
    },
    "metadata": {
      "shipping_ref": "MQIBN2"
    }
  },
  {
    "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
    "type": "Authorization",
    "processed_on": "2018-01-17T09:30:48Z",
    "amount": 6540,
    "approved": true,
    "auth_code": "643381",
    "response_code": "10000",
    "response_summary": "Approved",
    "reference": "ORD-5023-4E89",
    "processing": {
      "retrieval_reference_number": "909913440644",
      "acquirer_transaction_id": "440644309099499894406"
    }
  }
]
```

<h3 id="get-payment-actions-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment actions retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|[Error](#schemaerror)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|[Error](#schemaerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|

<h3 id="get-payment-actions-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|type|Authorization|
|type|Card Verification|
|type|Void|
|type|Capture|
|type|Refund|
|type|Payout|
|type|Return|
|authorization_type|Final|
|authorization_type|Estimated|
|authorization_type|Incremental|
|type|digital|
|type|discount|
|type|physical|
|sub_type|blockchain|
|sub_type|cbdc|
|sub_type|cryptocurrency|
|sub_type|nft|
|sub_type|stablecoin|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-details ), ApiSecretKey
</aside>

## Increment authorization

<a id="opIdincrementPaymentAuthorization"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments.Request;
using Checkout.Payments.Response;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

AuthorizationRequest authorizationRequest = new AuthorizationRequest
{
    Amount = 100, Reference = "payment_reference"
};

try
{
    // Optional: idempotencyKey as a third parameter for idempotent requests
    AuthorizationResponse response = await api.PaymentsClient().IncrementPaymentAuthorization("payment_id", authorizationRequest);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.request.AuthorizationRequest;
import com.checkout.payments.response.AuthorizationResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

AuthorizationRequest authorizationRequest = AuthorizationRequest.builder()
    .amount(100L)
    .reference("reference")
    .build();

try {
    // Optional: idempotencyKey as a third parameter for idempotent requests
    AuthorizationResponse response = api.paymentsClient().incrementPaymentAuthorization("payment_id", authorizationRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const increment = await cko.payments.increment('pay_bvxdyo7xdssuhcx3e74dpcrfmu', {
		amount: 200,
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Payments\AuthorizationRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new AuthorizationRequest();
$request->amount = 10;
$request->reference = "reference";
$request->metadata = array("param1" => "value1", "param2" => "value2");

try {
    // Optional: idempotencyKey as a third parameter for idempotent requests
    $response = $api->getPaymentsClient()->incrementPaymentAuthorization("payment_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.payments.payments import AuthorizationRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

request = AuthorizationRequest()
request.amount = 10
request.reference = 'reference'

try:
    # Optional: idempotencyKey as a third parameter for idempotent requests
    response = api.payments.increment_payment_authorization('payment_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
# Bad arguments

except CheckoutAuthorizationException as err:
# Invalid authorization
```

`POST /payments/{id}/authorizations`

Request an incremental authorization to increase the authorization amount or extend the authorization's validity period.

> Body parameter

```json
{
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}
```

<h3 id="increment-authorization-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|id|path|string|true|The payment identifier|
|body|body|[AuthorizationRequest](#schemaauthorizationrequest)|false|none|

> Example responses

> 201 Response

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 6540,
  "currency": "USD",
  "approved": true,
  "status": "Authorized",
  "auth_code": "643381",
  "response_code": "10000",
  "response_summary": "Approved",
  "expires_on": "string",
  "balances": {
    "total_authorized": 6540,
    "total_voided": 0,
    "available_to_void": 6540,
    "total_captured": 0,
    "available_to_capture": 6540,
    "total_refunded": 0,
    "available_to_refund": 0
  },
  "processed_on": "2019-08-24T14:15:22Z",
  "reference": "ORD-5023-4E89",
  "processing": {
    "retrieval_reference_number": "909913440644",
    "acquirer_transaction_id": "440644309099499894406",
    "recommendation_code": "02",
    "surcharge_amount": 200,
    "scheme_transaction_link_id": "string"
  },
  "eci": "06",
  "scheme_id": "489341065491658",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "actions": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
    },
    "authorize": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
    },
    "void": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/voids"
    },
    "capture": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/capture"
    }
  }
}
```

<h3 id="increment-authorization-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Authorization processed successfully|[AuthorizationResponse](#schemaauthorizationresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Incremental authorization not allowed|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-authorizations ), ApiSecretKey
</aside>

## Cancel a scheduled retry

<a id="opIdcancelAPayment"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: string

```

```javascript
const inputBody = '{
  "reference": "ORD-5023-4E89"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => 'string',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/{id}/cancellations";
      
      string json = @"{
  ""reference"": ""ORD-5023-4E89""
}";
      CancellationRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(CancellationRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(CancellationRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payments/{id}/cancellations`

Cancels an upcoming retry, if there is one scheduled

Cancellation requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the cancellation is successful.

> Body parameter

```json
{
  "reference": "ORD-5023-4E89"
}
```

<h3 id="cancel-a-scheduled-retry-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|id|path|string|true|The unique payment identifier.|
|body|body|[CancellationRequest](#schemacancellationrequest)|false|none|

> Example responses

> 202 Response

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "reference": "ORD-5023-4E89",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}
```

<h3 id="cancel-a-scheduled-retry-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Cancellation accepted|[CancellationAcceptedResponse](#schemacancellationacceptedresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Cancellation not allowed|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data sent|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-cancellations ), ApiSecretKey
</aside>

## Capture a payment

<a id="opIdcaptureAPayment"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CaptureRequest request = new CaptureRequest
{
    Amount = 10,
    Reference = "reference",
    Metadata = new Dictionary<string, object>() {{"coupon_code", "NY2018"}, {"partner_id", "123989"}}
};

try
{
    CaptureResponse response = await api.PaymentsClient().CapturePayment("payment_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments/nas"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := nas.CaptureRequest{
	Amount:    10,
	Reference: "partial capture",
	Metadata: map[string]interface{}{},
}

response, err := api.Payments.CapturePayment("payment_id", request, nil)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.CaptureRequest;
import com.checkout.payments.CaptureResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

CaptureRequest captureRequest = CaptureRequest.builder()
    .amount(10L)
    .reference("partial capture")
    .metadata(new HashMap<>())
    .build();

try {
    // or, capturePayment("payment_id") for a full capture
    CaptureResponse response = api.paymentsClient().capturePayment("payment_id", captureRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}

```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const payment = await cko.payments.capture('pay_je5hbbb4u3oe7k4u3lbwlu3zkq', {
		amount: 1000,
		reference: 'CAPTURE ORDER 1234',
		metadata: {
			value: 'my value',
		},
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Payments\CaptureRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new CaptureRequest();
$request->reference = "partial capture";
$request->amount = 5;

try {
    // or, capturePayment("payment_id") for a full capture
    $response = $api->getPaymentsClient()->capturePayment("payment_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.payments.payments import CaptureRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

request = CaptureRequest()
request.reference = 'reference'
request.amount = 10

try:
    # or, capture_payment('payment_id') for a full capture
    response = api.payments.capture_payment('payment_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
# Bad arguments

except CheckoutAuthorizationException as err:
# Invalid authorization

```

`POST /payments/{id}/captures`

Captures a payment if supported by the payment method.

For card payments, capture requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the capture is successful.

> Body parameter

```json
{
  "amount": 6540,
  "capture_type": "Final",
  "reference": "ORD-5023-4E89",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "tax_number": "1350693505279",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "description": "Set of 3 masks",
  "billing_descriptor": {
    "name": "SUPERHEROES.COM",
    "city": "GOTHAM",
    "reference": "string",
    "local_descriptors": [
      {
        "name": "漢字",
        "character_set": "kanji"
      }
    ]
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "10014",
    "tracking_info": [
      {
        "return_shipping_company": "DHL US",
        "return_tracking_number": "GM275322484009027685",
        "return_tracking_uri": "https://example.com/tracking/GM275322484009027685",
        "shipping_company": "DHL US",
        "tracking_number": "GM275322484009027685",
        "tracking_uri": "https://example.com/tracking/GM275322484009027685"
      }
    ]
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "processing": {
    "order_id": "123456789",
    "otp_value": "966557877988",
    "tax_amount": 3000,
    "surcharge_amount": 200,
    "discount_amount": 0,
    "duty_amount": 0,
    "shipping_amount": 300,
    "shipping_tax_amount": 100,
    "purchase_country": "GB",
    "foreign_retailer_amount": 20000
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}
```

<h3 id="capture-a-payment-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|id|path|string|true|The payment identifier|
|body|body|[CaptureRequest](#schemacapturerequest)|false|none|

> Example responses

> 200 Response

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}
```

<h3 id="capture-a-payment-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment is already captured|Inline|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Capture accepted|[CaptureAcceptedResponse](#schemacaptureacceptedresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Capture not allowed|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

<h3 id="capture-a-payment-responseschema">Response Schema</h3>

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-captures ), ApiSecretKey
</aside>

## Refund a payment

<a id="opIdrefundAPayment"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

RefundRequest request = new RefundRequest()
{
    Amount = 10,
    Reference = "reference",
    Metadata = new Dictionary<string, object>() {{"coupon_code", "NY2018"}, {"partner_id", "123989"}}
};

try
{
    RefundResponse response = await api.PaymentsClient().RefundPayment("payment_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := payments.RefundRequest{
	Amount:    10,
	Reference: "partial refund",
	Metadata: map[string]interface{}{},
}

response, err := api.Payments.RefundPayment("payment_id", request, nil)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.RefundRequest;
import com.checkout.payments.RefundResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

RefundRequest refundRequest = RefundRequest.builder()
    .reference("partial refund")
    .amount(10L)
    .metadata(new HashMap<>())
    .build();

try {
    // or, refundPayment("payment_id") for a full refund
    RefundResponse response = api.paymentsClient().refundPayment("payment_id", refundRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const payment = await cko.payments.refund('pay_je5hbbb4u3oe7k4u3lbwlu3zkq', {
		amount: 1000,
		reference: 'REFUND ORDER 1234',
		metadata: {
			value: 'my value',
		},
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Payments\RefundRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new RefundRequest();
$request->reference = "reference";
$request->amount = 10;

try {
    // or, refundPayment("payment_id") for a full refund
    $response = $api->getPaymentsClient()->refundPayment("payment_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.payments.payments import RefundRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

request = RefundRequest()
request.reference = 'reference'
request.amount = 10

try:
    # or, refundPayment('payment_id') for a full refund
    response = api.payments.refund_payment('payment_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
# Bad arguments

except CheckoutAuthorizationException as err:
# Invalid authorization
```

`POST /payments/{id}/refunds`

Refunds a payment if supported by the payment method.

For card payments, refund requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the refund is successful.

> Body parameter

```json
{
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "capture_action_id": "act_fd3h6evhpn3uxdoqbuu3lqnqbm",
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "destination": {
    "account_type": "savings",
    "account_number": "13654567455",
    "bank_code": "123-456",
    "branch_code": "6443",
    "iban": "HU93116000060000000012345676",
    "bban": "3704 0044 0532 0130 00",
    "swift_bic": "37040044",
    "country": "GB",
    "account_holder": {
      "type": "individual",
      "first_name": "John",
      "last_name": "Smith",
      "company_name": "Test company",
      "tax_id": "123456",
      "date_of_birth": "1986-01-01",
      "country_of_birth": "GB",
      "residential_status": "resident",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "identification": {
        "type": "passport",
        "number": "09876",
        "issuing_country": "US"
      },
      "email": "test.user@checkout.com"
    },
    "bank": {
      "name": "Lloyds TSB",
      "branch": "Bournemouth",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    }
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}
```

<h3 id="refund-a-payment-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|id|path|string|true|The payment identifier|
|body|body|[RefundRequest](#schemarefundrequest)|false|none|

> Example responses

> 200 Response

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}
```

<h3 id="refund-a-payment-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment is already refunded|Inline|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Refund accepted|[RefundAcceptedResponse](#schemarefundacceptedresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Refund not allowed|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

<h3 id="refund-a-payment-responseschema">Response Schema</h3>

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-refunds ), ApiSecretKey
</aside>

## Reverse a payment

<a id="opIdreversePayment"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: string

```

```javascript
const inputBody = '{
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => 'string',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/{id}/reversals";
      
      string json = @"{
  ""reference"": ""ORD-5023-4E89"",
  ""metadata"": {
    ""coupon_code"": ""NY2018"",
    ""partner_id"": 123989
  }
}";
      PaymentReversalRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(PaymentReversalRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PaymentReversalRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payments/{id}/reversals`

Returns funds back to the customer by automatically performing the appropriate payment action depending on the payment's status.

For more information, see <a href="https://www.checkout.com/docs/payments/manage-payments/reverse-a-payment">Reverse a payment</a>.

> Body parameter

```json
{
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}
```

<h3 id="reverse-a-payment-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|id|path|string|true|The unique identifier for the payment.|
|body|body|[PaymentReversalRequest](#schemapaymentreversalrequest)|false|none|

> Example responses

> 200 Response

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}
```

<h3 id="reverse-a-payment-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment is already reversed|Inline|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Reversal accepted|[PaymentReversalAcceptedResponse](#schemapaymentreversalacceptedresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Reversals not supported for this payment|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

<h3 id="reverse-a-payment-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||none|
|202|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-voids gateway:payment-refunds gateway:payment-cancellations ), ApiSecretKey
</aside>

## Void a payment

<a id="opIdvoidAPayment"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Payments;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Gateway)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

VoidRequest request = new VoidRequest
{
    Reference = "reference",
    Metadata = new Dictionary<string, object> {{"coupon_code", "NY2018"}, {"partner_id", "123989"}}
};

try
{
    VoidResponse response = await api.PaymentsClient().VoidPayment("payment_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/payments"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := payments.VoidRequest{
	Reference: "reference",
	Metadata:  map[string]interface{}{},
}

response, err := api.Payments.VoidPayment("payment_id", request, nil)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.payments.VoidRequest;
import com.checkout.payments.VoidResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

VoidRequest voidRequest = VoidRequest.builder()
    .reference("reference")
    .metadata(new HashMap<>())
    .build();

try {
    // or, voidPayment("payment_id")
    VoidResponse response = api.paymentsClient().voidPayment("payment_id", voidRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const payment = await cko.payments.void('pay_je5hbbb4u3oe7k4u3lbwlu3zkq', {
		amount: 1000,
		reference: 'VOID ORDER 1234',
		metadata: {
			value: 'my value',
		},
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Payments\VoidRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new VoidRequest();
$request->reference = "reference";

try {
    // or, voidPayment("payment_id")
    $response = $api->getPaymentsClient()->voidPayment("payment_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.payments.payments import VoidRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

request = VoidRequest()
request.reference = 'reference'

try:
    # or, void_payment('payment_id')
    response = api.payments.void_payment('payment_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
# Bad arguments

except CheckoutAuthorizationException as err:
# Invalid authorization
```

`POST /payments/{id}/voids`

Voids a payment if supported by the payment method.

For card payments, void requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the void is successful.

> Body parameter

```json
{
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}
```

<h3 id="void-a-payment-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|id|path|string|true|The payment identifier|
|body|body|[VoidRequest](#schemavoidrequest)|false|none|

> Example responses

> 200 Response

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}
```

<h3 id="void-a-payment-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment is already voided|Inline|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Void accepted|[VoidAcceptedResponse](#schemavoidacceptedresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Void not allowed|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

<h3 id="void-a-payment-responseschema">Response Schema</h3>

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-voids ), ApiSecretKey
</aside>

## Search payments

<a id="opIdsearch"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payments/search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payments/search HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "query": "id:'pay_mbabizu24mvu3mela5njyhpit4'",
  "limit": 10,
  "from": "2023-08-24T14:15:22Z",
  "to": "2023-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payments/search',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payments/search',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payments/search', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payments/search', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payments/search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payments/search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payments/search";
      
      string json = @"{
  ""query"": ""id:'pay_mbabizu24mvu3mela5njyhpit4'"",
  ""limit"": 10,
  ""from"": ""2023-08-24T14:15:22Z"",
  ""to"": ""2023-08-24T14:15:22Z""
}";
      SearchRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(SearchRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(SearchRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payments/search`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>

Search and filter through your payment data to retrieve payments that match your query.

If a search returns more results than the value specified in `limit`, additional results are returned in a new page. A link to the next page of results is returned in the response's `_links.next.href` field.

For more information on search syntax, see the <a href="https://www.checkout.com/docs/payments/manage-payments/search-and-filter-payments" target="blank">Search and filter payments</a> documentation.

> Body parameter

```json
{
  "query": "id:'pay_mbabizu24mvu3mela5njyhpit4'",
  "limit": 10,
  "from": "2023-08-24T14:15:22Z",
  "to": "2023-08-24T14:15:22Z"
}
```

<h3 id="search-payments-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[SearchRequest](#schemasearchrequest)|true|Search query.|

> Example responses

> 200 Response

```json
{
  "data": [
    {
      "id": "pay_mbabizu24mvu3mela5njyhpit4",
      "requested_on": "2023-08-24T14:15:22Z",
      "source": {
        "type": "card",
        "expiry_month": "04",
        "expiry_year": "2024",
        "name": "Jia Tsang",
        "scheme": "Visa",
        "local_schemes": [
          "cartes bancaires"
        ],
        "last4": "3131",
        "fingerprint": "B16D9C2EF0C861A8825C9BD59CCE9171D84EBC45E89CC792B5D1D2D0DDE3DAB7",
        "bin": "313131",
        "card_type": "credit",
        "card_wallet_type": "googlepay",
        "issuer": "GE CAPITAL FINANCIAL, INC",
        "issuer_country": "US",
        "avs_check": "G"
      },
      "amount": 10000,
      "amount_requested": 10000,
      "currency": "GBP",
      "payment_type": "regular",
      "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
      "reference": "ORD-5023-4E89",
      "status": "captured",
      "balances": {
        "total_authorized": 200,
        "total_captured": 150,
        "total_refunded": 50
      },
      "3ds": {
        "eci": "02",
        "version": "2.1.0"
      },
      "risk": {
        "flagged": false,
        "score": "22"
      },
      "customer": {
        "email": "jia.tsang@checkout.com",
        "name": "Jia Tsang"
      },
      "billing_descriptor": {
        "name": "Purchase",
        "city": "London"
      },
      "metadata": {},
      "actions": [
        {
          "id": "act_egiv5753bwmexj6ip3tlpog6gq",
          "type": "Dispute",
          "processed_on": "2023-08-25T14:15:24Z",
          "status": "Evidence Required",
          "amount": 1310,
          "reason_code": "13.1"
        },
        {
          "id": "act_i3cd3w3lcooexmyrtlgulk3d7a",
          "type": "Capture",
          "processed_on": "2023-08-24T14:15:26Z",
          "status": "Approved",
          "amount": 1310,
          "auth_code": "983647",
          "response_code": "10000",
          "response_summary": "Approved",
          "reference": "REF-7HR-IYW",
          "processing": {
            "acquirer_reference_number": "25651432189281252509653"
          }
        },
        {
          "id": "act_2uwlm6xyeszerhroqhfnotmiwu",
          "type": "Authorization",
          "processed_on": "2023-08-24T14:15:25Z",
          "status": "Approved",
          "amount": 1310,
          "auth_code": "983647",
          "response_code": "10000",
          "response_summary": "Approved",
          "reference": "REF-7HR-IYW",
          "processing": {
            "acquirer_reference_number": "25651432189281252509653"
          }
        },
        {
          "id": "act_mscwxewzdldefh2rbbnhm6aeqi",
          "type": "Authorization",
          "processed_on": "2023-08-24T14:15:24Z",
          "status": "Pending",
          "amount": 1310,
          "reference": "REF-7HR-IYW"
        },
        {
          "id": "act_qocmjw6skb4u3c4wd3avpot64y",
          "type": "Authentication",
          "processed_on": "2023-08-24T14:15:34Z",
          "status": "Approved",
          "authentication_experience": "3ds",
          "authentication_transaction_id": "f05af960-f718-428d-b856-068f6cb9a3b4"
        },
        {
          "id": "act_qocmjw6skb4u3c4wd3avpot64y",
          "type": "Authentication",
          "processed_on": "2023-08-24T14:15:22Z",
          "status": "Pending",
          "reference": "REF-7HR-IYW"
        }
      ]
    }
  ],
  "_links": {
    "next": {
      "href": "https://{prefix}.api.checkout.com/payments/search/nGd7-altGkOfSl3fJptLxA?token=MTc0MDUwMjE2MjQxOCxlN2NiNTdmYy04MDA5LTQ3YmMtOTYzNi0zNDEyOWRmZTkwZTI"
    }
  }
}
```

<h3 id="search-payments-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful search|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Invalid input|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Query validation error|[SearchError](#schemasearcherror)|

<h3 id="search-payments-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|type|Authentication|
|type|Authorization|
|type|Card Verification|
|type|Void|
|type|Capture|
|type|Partial Capture|
|type|Partial Refund|
|type|Refund|
|type|Cancelation|
|type|Request|
|type|Pending|
|type|Dispute|
|type|Payout|
|type|Return|
|type|Payout|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: payments:search ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-payout-schedules">Payout schedules</h1>

View and manage payout schedules for your sub-entities.

## Retrieve a sub-entity's payout schedule

<a id="opIdgetSubEntitysPayoutSchedule"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Accounts.Payout.Response;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Accounts)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    GetScheduleResponse response = await api.AccountsClient().RetrievePayoutSchedule("entity_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Accounts.RetrievePayoutSchedule("entity_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.accounts.payout.schedule.response.GetScheduleResponse;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.ACCOUNTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    GetScheduleResponse response = api.accountsClient().retrievePayoutSchedule("entity_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Accounts])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getAccountsClient()->retrievePayoutSchedule("entity_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.ACCOUNTS]) 
    .build()
)

try:
    response = api.accounts.retrieve_payout_schedule("entity_id")
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /accounts/entities/{id}/payout-schedules`

You can schedule when your sub-entities receive their funds using our <a href="https://checkout.com/docs/platforms" target="_blank">Platforms solution</a>. Use this endpoint to retrieve information about a sub-entity's schedule.

<h3 id="retrieve-a-sub-entity's-payout-schedule-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ID of the sub-entity|

> Example responses

> 200 Response

```json
{
  "GBP": {
    "recurrence": {
      "enabled": true,
      "threshold": 100,
      "payment_instrument_id": "ppi_w4jelhppmfiufdnatam37wrfc4",
      "schedule": {
        "frequency": "weekly",
        "by_day": [
          "monday"
        ]
      }
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
      }
    }
  }
}
```

<h3 id="retrieve-a-sub-entity's-payout-schedule-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Schedule retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Sub-entity not found, or scheduled payouts are not available to the sub-entity.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data sent.|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests.|None|

<h3 id="retrieve-a-sub-entity's-payout-schedule-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|frequency|weekly|
|frequency|daily|
|frequency|monthly|
|frequency|weekly|
|frequency|daily|
|frequency|monthly|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Update a sub-entity's payout schedule

<a id="opIdputSubEntitysPayoutSchedule"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Accounts.Payout;
using Checkout.Accounts.Payout.Request;
using Checkout.Common;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Accounts)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

UpdateScheduleRequest scheduleRequest = new UpdateScheduleRequest
{
    Enabled = true,
    Threshold = 1000,
    Recurrence =
        new ScheduleFrequencyWeeklyRequest {ByDay = new[] {DaySchedule.Sunday, DaySchedule.Monday}}
};

try
{
    EmptyResponse emptyResponse = await api.AccountsClient().UpdatePayoutSchedule("entity_id", Currency.USD, scheduleRequest);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/accounts"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := accounts.CurrencySchedule{
	Enabled:    true,
	Threshold:  1000,
	Recurrence: accounts.NewScheduleFrequencyWeeklyRequest([]accounts.DaySchedule{accounts.Monday}),
}

response, err := api.Accounts.UpdatePayoutSchedule("entity_id", common.GBP, request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.accounts.payout.schedule.DaySchedule;
import com.checkout.accounts.payout.schedule.request.ScheduleFrequencyWeeklyRequest;
import com.checkout.accounts.payout.schedule.request.UpdateScheduleRequest;
import com.checkout.accounts.payout.schedule.response.VoidResponse;
import com.checkout.common.Currency;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.ACCOUNTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

UpdateScheduleRequest request = UpdateScheduleRequest.builder()
    .enabled(true)
    .threshold(1000)
    .recurrence(ScheduleFrequencyWeeklyRequest.builder()
        .byDay(DaySchedule.MONDAY)
        .build())
    .build();

try {
    VoidResponse response = api.accountsClient().updatePayoutSchedule("entity_id", Currency.USD, request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\Balances\BalancesQuery;
use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Currency;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Balances])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$query = new BalancesQuery();
$query->query = "currency:" . Currency::$GBP;

try {
    $response = $api->getBalancesClient()->retrieveEntityBalances("entity_id", $query);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.accounts.accounts import UpdateScheduleRequest, ScheduleRequest, ScheduleFrequencyWeeklyRequest, DaySchedule
from checkout_sdk.common.enums import Currency
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.ACCOUNTS]) 
    .build()
)

frequency = ScheduleFrequencyWeeklyRequest()
frequency.by_day = DaySchedule.MONDAY

schedule = ScheduleRequest()
schedule.frequency = frequency

request = UpdateScheduleRequest()
request.enabled = True
request.threshold = 1000
request.recurrence = schedule

try:
    response = api.accounts.update_payout_schedule("entity_id", Currency.USD, request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PUT /accounts/entities/{id}/payout-schedules`

You can schedule when your sub-entities receive their funds using our <a href="https://checkout.com/docs/platforms" target="_blank">Platforms solution</a>. Use this endpoint to update a sub-entity's schedule.

> Body parameter

```json
{
  "ISO": {
    "enabled": true,
    "threshold": 100,
    "payment_instrument_id": "ppi_w4jelhppmfiufdnatam37wrfc4",
    "recurrence": {
      "frequency": "weekly",
      "by_day": [
        "monday"
      ]
    }
  }
}
```

<h3 id="update-a-sub-entity's-payout-schedule-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ID of the sub-entity|
|body|body|any|true|none|

> Example responses

> 200 Response

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  }
}
```

<h3 id="update-a-sub-entity's-payout-schedule-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Schedule updated successfully|[EntityLinks](#schemaentitylinks)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-platforms">Platforms</h1>

Manage all your sub-entities (also known as sub-merchants) through one integration, globally.

## Get sub-entity Members

<a id="opIdgetSubEntityMembers"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /accounts/entities/{entityId}/members`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Retrieve information on all users of a sub-entity that has been invited through <a href="https://www.checkout.com/docs/platforms/onboard-sub-entities/onboard-with-hosted-onboarding" target="_blank">Hosted Onboarding</a>. Only one user can be invited to onboard the sub-entity through Hosted Onboarding.

To enable the Hosted Onboarding feature, contact your Account Manager.

<h3 id="get-sub-entity-members-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The ID of the sub-entity|

> Example responses

> Sub-Entity member retrieved successfully

```json
{
  "data": [
    {
      "user_id": "usr_eyk754cqieqexfh6u46no5nnha"
    }
  ]
}
```

<h3 id="get-sub-entity-members-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sub-Entity member retrieved successfully|[PlatformsHostedOnboardGetMembers](#schemaplatformshostedonboardgetmembers)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Sub-entity not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Reinvite a sub-entity member

<a id="opIdreinviteSubEntityMembers"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/members/{userId}";

      
      string json = @"{}";
      PlatformsHostedOnboardReinviteRequest content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);
      
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, PlatformsHostedOnboardReinviteRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PlatformsHostedOnboardReinviteRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /accounts/entities/{entityId}/members/{userId}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Resend an invitation to the user of a sub-entity. The user will receive another email to continue their <a href="https://www.checkout.com/docs/platforms/onboard-sub-entities/onboard-with-hosted-onboarding" target="_blank">Hosted Onboarding</a> application. An invitation can only be resent to the user originally registered to the sub-entity.

To enable the Hosted Onboarding feature, contact your Account Manager.

> Body parameter

```json
{}
```

<h3 id="reinvite-a-sub-entity-member-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[PlatformsHostedOnboardReinviteRequest](#schemaplatformshostedonboardreinviterequest)|true|none|
|entityId|path|string|true|The ID of the sub-entity|
|userId|path|string|true|The ID of the invited user.|

> Example responses

> Sub-entity member retrieved successfully

```json
{
  "id": "usr_eyk754cqieqexfh6u46no5nnha"
}
```

<h3 id="reinvite-a-sub-entity-member-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Sub-entity member retrieved successfully|[PlatformsHostedOnboardReinviteResponse](#schemaplatformshostedonboardreinviteresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Sub-entity not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Upload a file

<a id="opIduploadAFile"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "purpose": "identity_verification"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files";
      
      string json = @"{
  ""purpose"": ""identity_verification""
}";
      PlatformsFileUpload content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(PlatformsFileUpload content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PlatformsFileUpload content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /entities/{entityId}/files`

Our Platforms solution provides an easy way to upload documentation required for full due diligence.

Use this endpoint to generate a file upload link, which you can then upload a file to using a data-binary type request.

See the <a href="https://checkout.com/docs/platforms/onboarding/api/full/upload-a-file" target="_blank">documentation</a> for more information.

Please note that the sub-domain – https://files.checkout.com – is slightly different to Checkout.com's other endpoints. See the <a href="https://checkout.com/docs/platforms/onboarding/api/full/upload-a-file" target="_blank">documentation</a> for more information.

> Body parameter

```json
{
  "purpose": "identity_verification"
}
```

<h3 id="upload-a-file-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[PlatformsFileUpload](#schemaplatformsfileupload)|false|none|
|entityId|path|string|true|The ID of the sub-entity|

> Example responses

> 200 Response

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "maximum_size_in_bytes": 4194304,
  "document_types_for_purpose": [
    "image/jpeg",
    "image/png",
    "image/jpg"
  ],
  "_links": {
    "upload": {
      "href": "https://s3.eu-west-1.amazonaws.com/mp-files-api-staging-prod/ent_ociwguf5a5fe3ndmpnvpnwsi3e/file_6lbss42ezvoufcb2beo76rvwly?AWSAccessKeyId=ASIX4BFJOBCQFLAMPKU3&Expires=1661355993&x-amz-security-token=some_token"
    },
    "self": {
      "href": "https://files.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    }
  }
}
```

<h3 id="upload-a-file-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|File uploaded successfully|[PlatformsFileUploadResponse](#schemaplatformsfileuploadresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: files ), ApiSecretKey
</aside>

## Retrieve a file

<a id="opIdretrieveAFile"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/entities/{entityId}/files/{fileId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /entities/{entityId}/files/{fileId}`

Retrieve information about a previously uploaded file.

Please note that the sub-domain – https://files.checkout.com – is slightly different to Checkout.com's other endpoints. See the <a href="https://checkout.com/docs/platforms/onboarding/api/full/upload-a-file" target="_blank">documentation</a> for more information.

<h3 id="retrieve-a-file-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The ID of the sub-entity|
|fileId|path|string|true|The ID of the file. The value is always prefixed with `file_`.|

> Example responses

> 200 Response

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "status": "invalid",
  "status_reasons": [
    "InvalidMimeType"
  ],
  "size": 1024,
  "mime_type": "application/pdf",
  "uploaded_on": "2020-12-01T15:01:01Z",
  "purpose": "identity_verification",
  "_links": {
    "download": {
      "href": "https://s3.eu-west-1.amazonaws.com/mp-files-api-clean-prod/ent_ociwguf5a5fe3ndmpnvpnwsi3e/file_6lbss42ezvoufcb2beo76rvwly?X-Amz-Expires=3600&x-amz-security-token=some_token"
    },
    "self": {
      "href": "https://files.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    }
  }
}
```

<h3 id="retrieve-a-file-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|[PlatformsFileRetrieveResponse](#schemaplatformsfileretrieveresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|File not found|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: files files:retrieve ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-reports">Reports</h1>

Retrieve your reconciliation reports programmatically with the [Reports API](https://www.checkout.com/docs/reporting/reports-api).

## Get all reports

<a id="opIdgetReports"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/reports"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Reports}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

query := reports.QueryFilter{
	CreatedAfter:  time.Parse("2006-01-02", time.Now().AddDate(0, 0, -10).Format("2006-01-02")),
	CreatedBefore: time.Parse("2006-01-02", time.Now().Format("2006-01-02")),
	EntityId:      "entity_id",
	Limit:         20,
}

response, err := api.Reports.GetAllReports(query)
if err != nil {
	return nil, err
}

return response, nil
```

`GET /reports`

Returns the list of reports and their details.

<h3 id="get-all-reports-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|created_after|query|string(date-time)|false|Filters reports to those created on or after the specified timestamp, in UTC. <br/>Format – ISO 8601 code|
|created_before|query|string(date-time)|false|Filters reports to those created before the specified timestamp, in UTC. <br/>Format – ISO 8601 code|
|entity_id|query|string|false|Filters reports to those created for the specified entity. <br/>Sub-entity IDs are not supported.|
|limit|query|integer(int32)|false|The number of results you want to include per page. </br> For example, if there are 50 results and you set limit=10, you receive 5 pages each containing 10 results.|
|pagination_token|query|string|false|A token used to paginate multiple pages of results.|

> Example responses

> 200 Response

```json
{
  "count": 1,
  "limit": 5,
  "data": [
    {
      "id": "rpt_lmmldzousk7etoqijqundqexa4",
      "created_on": "2022-02-18T13:00:12.357Z",
      "last_modified_on": "2022-02-18T13:16:12.357Z",
      "type": "Authentication",
      "description": "Reconciliation Report for X.",
      "account": {
        "client_id": "cli_bvaelhppmfiufdnatam37wrfc4",
        "entity_id": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
      },
      "tags": [
        "payout_id:pay_123456789"
      ],
      "from": "2022-02-17T12:00:00Z",
      "to": "2022-02-18T12:00:00Z",
      "files": [
        {
          "id": "file_7ysmgfkj4ipunduud22uf73iey",
          "filename": "financial-actions_ent_znj4ih5kn4fuxiaquoudv5mvwy_20220218_000000001drl_1.csv",
          "format": "CSV",
          "_links": {
            "self": {
              "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4/files/file_lmmldzousk7etoqijqundqexa4"
            }
          }
        }
      ],
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/reports?entity_id=ent_znj4ih5kn4fuxiaquoudv5mvwy&created_after=2022-02-17T00:00:00.000Z&limit=5"
    },
    "next": {
      "href": "https://{prefix}.api.checkout.com/reports?pagination_token=NaZMwq3KbreYcXg0dg752Dg8ps4orkwVK9pj9WFzkXk8rPoR32Wf74QWX0EkZ&entity_id=ent_znj4ih5kn4fuxiaquoudv5mvwy&created_after=2022-02-17T00:00:00.000Z&limit=5"
    }
  }
}
```

<h3 id="get-all-reports-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Reports retrieved successfully|[ReportListResponse](#schemareportlistresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized – Access token may be invalid or missing|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity|[ReportErrorResponse](#schemareporterrorresponse)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: reports reports:view ), ApiSecretKey
</aside>

## Get report details

<a id="opIdgetReportDetails"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Reports}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Reports.GetReportDetails("report_id")
if err != nil {
	return nil, err
}

return response, nil
```

`GET /reports/{id}`

Use this endpoint to retrieve a specific report using its ID.

<h3 id="get-report-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ID of the report to retrieve.|

> Example responses

> 200 Response

```json
{
  "id": "rpt_lmmldzousk7etoqijqundqexa4",
  "created_on": "2022-02-18T13:00:12.357Z",
  "last_modified_on": "2022-02-18T13:16:12.357Z",
  "type": "Authentication",
  "description": "Reconciliation Report for X.",
  "account": {
    "client_id": "cli_bvaelhppmfiufdnatam37wrfc4",
    "entity_id": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
  },
  "tags": [
    "payout_id:pay_123456789"
  ],
  "from": "2022-02-17T12:00:00Z",
  "to": "2022-02-18T12:00:00Z",
  "files": [
    {
      "id": "file_7ysmgfkj4ipunduud22uf73iey",
      "filename": "financial-actions_ent_znj4ih5kn4fuxiaquoudv5mvwy_20220218_000000001drl_1.csv",
      "format": "CSV",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4/files/file_lmmldzousk7etoqijqundqexa4"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4"
    }
  }
}
```

<h3 id="get-report-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Report details retrieved successfully|[ReportResponse](#schemareportresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized. Likely causes include an invalid or unspecified access token.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No report with the specified ID was found.|Inline|

<h3 id="get-report-details-responseschema">Response Schema</h3>

Status Code **404**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|Request Id|
|» error_type|string|false|none|The type of error. <br/> • invalid_request = Usually with an http status code 422. The request payload failed validation. <br/> • not_found = Usually with an http status code 404. The requested resource was not found. <br/>|
|» error_codes|[string]|false|none|Error response code. Full list of error codes below: <br/> • invalid_some_field = Usually with an error type `invalid_request` and http status code 422 Unprocessable entity. The field `some_field` failed validation. Please consult the API spec. <br/> • some_resource_not_found = Usually with an error type `not_found`. The resource you are trying to get does not exist. <br/>|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: reports reports:view ), ApiSecretKey
</aside>

## Get report file

<a id="opIdgetReportFile"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Reports}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Reports.GetReportFile("report_id", "file_id")
if err != nil {
	return nil, err
}

return response, nil
```

`GET /reports/{id}/files/{fileId}`

Use this endpoint to retrieve a specific file from a given report using their respective IDs.

<h3 id="get-report-file-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ID of the report that the file belongs to.|
|fileId|path|string|true|The ID of the file to retrieve.|

> Example responses

> 404 Response

```json
{
  "request_id": "0HMJGFVAQ35TL:00000117",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}
```

<h3 id="get-report-file-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|302|[Found](https://tools.ietf.org/html/rfc7231#section-6.4.3)|Redirect to the report file download location.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized. Likely causes include an invalid or unspecified access token.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No report with the specified ID was found.|Inline|

<h3 id="get-report-file-responseschema">Response Schema</h3>

Status Code **404**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|Request Id|
|» error_type|string|false|none|The type of error. <br/> • invalid_request = Usually with an http status code 422. The request payload failed validation. <br/> • not_found = Usually with an http status code 404. The requested resource was not found. <br/>|
|» error_codes|[string]|false|none|Error response code. Full list of error codes below: <br/> • invalid_some_field = Usually with an error type `invalid_request` and http status code 422 Unprocessable entity. The field `some_field` failed validation. Please consult the API spec. <br/> • some_resource_not_found = Usually with an error type `not_found`. The resource you are trying to get does not exist. <br/>|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|302|Cko-Version|string||The version of the API|
|302|Cko-Request-Id|string||The unique identifier of the request|
|302|Location|string||Link to download the file. Expires after 30 seconds.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: reports reports:view ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-standalone">Standalone</h1>

Use Standalone Sessions to authenticate transactions with 3D Secure (3DS) and comply with Strong Customer Authentication (SCA) requirements.

## Request a session

<a id="opIdcreateSession"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/sessions"
	"github.com/checkout/checkout-sdk-go/sessions/completion"
	"github.com/checkout/checkout-sdk-go/sessions/sources"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

source := sources.NewSessionCardSource()
source.Number = "12345678"
source.ExpiryMonth = 10
source.ExpiryYear = 2027

completion := completion.NewHostedCompletion()
completion.SuccessUrl = "https://docs.checkout.com/sessions/success"
completion.FailureUrl = "https://docs.checkout.com/sessions/fail"

request := sessions.SessionRequest{
	Source:                 source,
	Amount:                 10,
	Currency:               common.GBP,
	ProcessingChannelId:    "processing_channel_id",
	AuthenticationType:     sessions.RegularAuthType,
	AuthenticationCategory: sessions.Payment,
	ChallengeIndicator:     common.NoPreference,
	Reference:              "reference",
	TransactionType:        sessions.GoodsService,
	ShippingAddress: &sources.SessionAddress{
		Address: common.Address{
			AddressLine1: "123 High St.",
			AddressLine2: "Flat 456",
			City:         "London",
			State:        "GB",
			Zip:          "SW1A 1AA",
			Country:      common.GB,
		},
	},
	Completion:  completion,
}

response, err := api.Sessions.RequestSession(request)
if err != nil {
	return nil, err
}

return response, nil
```

`POST /sessions`

Create a payment session to authenticate a cardholder before requesting a payment.
Payment sessions can be linked to one or more payments (in the case of recurring and other merchant-initiated payments).

The `next_actions` object in the response tells you which actions can be performed next.

> Body parameter

```json
{
  "source": {
    "type": "card",
    "scheme": "amex",
    "number": "4242424242424242",
    "expiry_month": 12,
    "expiry_year": 2077,
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "ABC building",
      "address_line3": "14 Wells Mews",
      "city": "London",
      "state": "ENG",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "home_phone": {
      "country_code": "234",
      "number": "0204567895"
    },
    "mobile_phone": {
      "country_code": "234",
      "number": "0204567895"
    },
    "work_phone": {
      "country_code": "234",
      "number": "0204567895"
    },
    "email": "bruce.wayne@email.com",
    "name": "Bruce Wayne",
    "stored": true
  },
  "amount": 6540,
  "currency": "USD",
  "processing_channel_id": "string",
  "marketplace": {
    "sub_entity_id": "ent_rgyzti4x74xubmu72m6r3pvksa"
  },
  "authentication_type": "regular",
  "authentication_category": "payment",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "challenge_indicator": "no_preference",
  "billing_descriptor": {
    "name": "SUPERHEROES.COM"
  },
  "reference": "ORD-5023-4E89",
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "transaction_type": "goods_service",
  "shipping_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "shipping_address_matches_billing": false,
  "completion": {
    "type": "non_hosted",
    "callback_url": "https://merchant.com/callback"
  },
  "channel_data": {
    "channel": "browser",
    "accept_header": "Accept:  *.*, q=0.1",
    "java_enabled": true,
    "javascript_enabled": true,
    "language": "FR-fr",
    "color_depth": "16",
    "screen_height": "1080",
    "screen_width": "1920",
    "timezone": "60",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
    "three_ds_method_completion": "Y",
    "ip_address": "1.12.123.255",
    "iframe_payment_allowed": true,
    "user_agent_client_hint": "Sec-CH-UA: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "optimization": {
    "framework": "acceptance_rates"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "google_spa": {
    "continue_url": "string"
  },
  "preferred_experiences": [
    "3ds"
  ],
  "device_information": {
    "device_id": "string",
    "device_session_id": "dsid_ipsmclhxwq72phhr32iwfvrflm"
  }
}
```

<h3 id="request-a-session-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[SessionRequest](#schemasessionrequest)|false|none|

> Example responses

> 201 Response

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "certificates": {
    "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
    "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
    "ca_public_all": [
      "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
    ]
  },
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "cardholder_info": "Card declined. Please contact your issuing bank.",
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "customer_ip": "192.168.1.1",
  "_links": {
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "acs_url": {
      "href": "https://api.hsbc.com/challenge"
    },
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "success_url": {
      "href": "string"
    },
    "failure_url": {
      "href": "string"
    },
    "callback_url": {
      "href": "string"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "authentication_date": "2019-08-24T14:15:22Z",
  "exemption": {
    "requested": "none",
    "applied": "none",
    "code": "string",
    "trusted_beneficiary": {
      "status": "Y",
      "source": "01"
    }
  },
  "flow_type": "challenged",
  "challenge_indicator": "no_preference",
  "optimization": {
    "optimized": true,
    "framework": "acceptance_rates",
    "optimized_properties": [
      {
        "field": "challenge_indicator",
        "original_value": "trusted_listing",
        "optimized_value": "transaction_risk_assessment"
      }
    ]
  },
  "scheme_info": {
    "name": "cartes_bancaires",
    "score": "string",
    "avalgo": "string"
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  },
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  }
}
```

<h3 id="request-a-session-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Session processed successfully|[CreateSessionOkResponse](#schemacreatesessionokresponse)|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Session accepted and further action required|[CreateSessionAcceptedResponse](#schemacreatesessionacceptedresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden. Ensure scope matches `"channel_data.channel"`: Use `sessions:app` for `"app"` and `sessions:browser` for `"browser"`.|[ErrorResponse](#schemaerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ErrorResponse](#schemaerrorresponse)|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service not available. A temporary server error.|[ErrorResponse](#schemaerrorresponse)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: sessions:app sessions:browser )
</aside>

## Get session details

<a id="opIdgetSession"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Sessions.GetSessionDetails("session_id", "session_secret") // "session_secret" is optional
if err != nil {
	return nil, err
}

return response, nil
```

`GET /sessions/{id}`

Returns the details of the session with the specified identifier string.

<h3 id="get-session-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|Session ID|
|channel|header|string|false|Optionally provide the type of channnel so you only get the relevant actions|

#### Enumerated Values

|Parameter|Value|
|---|---|
|channel|browser|
|channel|app|

> Example responses

> 200 Response

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "certificates": {
    "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
    "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
    "ca_public_all": [
      "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
    ]
  },
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "cardholder_info": "Card declined. Please contact your issuing bank.",
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "customer_ip": "192.168.1.1",
  "_links": {
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "acs_url": {
      "href": "https://api.hsbc.com/challenge"
    },
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "success_url": {
      "href": "string"
    },
    "failure_url": {
      "href": "string"
    },
    "callback_url": {
      "href": "string"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "authentication_date": "2019-08-24T14:15:22Z",
  "exemption": {
    "requested": "none",
    "applied": "none",
    "code": "string",
    "trusted_beneficiary": {
      "status": "Y",
      "source": "01"
    }
  },
  "flow_type": "challenged",
  "challenge_indicator": "no_preference",
  "optimization": {
    "optimized": true,
    "framework": "acceptance_rates",
    "optimized_properties": [
      {
        "field": "challenge_indicator",
        "original_value": "trusted_listing",
        "optimized_value": "transaction_risk_assessment"
      }
    ]
  },
  "scheme_info": {
    "name": "cartes_bancaires",
    "score": "string",
    "avalgo": "string"
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  },
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  }
}
```

<h3 id="get-session-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Session retrieved successfully|[GetSessionResponse](#schemagetsessionresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden. This can happen when the OAuth token scope is `sessions:app`, but the session was initiated with the scope `sessions:browser`.|[ErrorResponse](#schemaerrorresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Session not found|[ErrorResponse](#schemaerrorresponse)|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: sessions:app sessions:browser ), SessionSecret
</aside>

## Update a session

<a id="opIdupdateSession"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/sessions/channels"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

channel := channels.NewBrowserSession()
channel.AcceptHeader = "Accept:  *.*, q=0.1"
channel.JavaEnabled = true
channel.Language = "FR-fr"
channel.ColorDepth = "16"
channel.ScreenWidth = "1920"
channel.ScreenHeight = "1080"
channel.Timezone = "60"
channel.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
channel.ThreeDsMethodCompletion = common.Y
channel.IpAddress = "1.12.123.255"

response, err := api.Sessions.UpdateSession("session_id", channel,"session_secret") // "session_secret" is optional
if err != nil {
	return nil, err
}

return response, nil
```

`PUT /sessions/{id}/collect-data`

Update a session by providing information about the environment.

> Body parameter

```json
{
  "channel": "browser",
  "accept_header": "Accept:  *.*, q=0.1",
  "java_enabled": true,
  "javascript_enabled": true,
  "language": "FR-fr",
  "color_depth": "16",
  "screen_height": "1080",
  "screen_width": "1920",
  "timezone": "60",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
  "three_ds_method_completion": "Y",
  "ip_address": "1.12.123.255",
  "iframe_payment_allowed": true,
  "user_agent_client_hint": "Sec-CH-UA: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""
}
```

<h3 id="update-a-session-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|Session ID|
|body|body|[ChannelData](#schemachanneldata)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "certificates": {
    "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
    "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
    "ca_public_all": [
      "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
    ]
  },
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "cardholder_info": "Card declined. Please contact your issuing bank.",
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "customer_ip": "192.168.1.1",
  "_links": {
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "acs_url": {
      "href": "https://api.hsbc.com/challenge"
    },
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "success_url": {
      "href": "string"
    },
    "failure_url": {
      "href": "string"
    },
    "callback_url": {
      "href": "string"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "authentication_date": "2019-08-24T14:15:22Z",
  "exemption": {
    "requested": "none",
    "applied": "none",
    "code": "string",
    "trusted_beneficiary": {
      "status": "Y",
      "source": "01"
    }
  },
  "flow_type": "challenged",
  "challenge_indicator": "no_preference",
  "optimization": {
    "optimized": true,
    "framework": "acceptance_rates",
    "optimized_properties": [
      {
        "field": "challenge_indicator",
        "original_value": "trusted_listing",
        "optimized_value": "transaction_risk_assessment"
      }
    ]
  },
  "scheme_info": {
    "name": "cartes_bancaires",
    "score": "string",
    "avalgo": "string"
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  },
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  }
}
```

<h3 id="update-a-session-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Session updated successfully|[GetSessionResponse](#schemagetsessionresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|[ErrorResponse](#schemaerrorresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Session not found|[ErrorResponse](#schemaerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable channel information|[ErrorResponse](#schemaerrorresponse)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: sessions:app sessions:browser ), SessionSecret
</aside>

## Complete a session

<a id="opIdcompleteSession"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Sessions.CompleteSession("session_id", "session_secret") // "session_secret" is optional
if err != nil {
	return nil, err
}

return response, nil
```

`POST /sessions/{id}/complete`

Completes a session by posting the following request to the callback URL. This step is optional and only applies to non-hosted sessions:
```
{
   "session_id": "sid_llraltf4jlwu5dxdtprcv7ba5i",
   "amount" : 6540,
   "currency": "USD",
   "status": "approved",
   "authentication_type": "regular",
   "authentication_category": "payment",
   "reference": "ORD-5023-4E89",
   "approved": true,
   "protocol_version": "2.2.0",
   "response_code": "Y",
   "response_status_reason": "01",
   "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
   "eci": "05",
   "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
   "cardholder_info": "Card declined. Please contact your issuing bank.",
   "challenged": true
}
```
<br/>
The fields of the above are the same as they would be in a GET session response. If the callback URL fails, we recommend that you use a GET call as a fallback.

<h3 id="complete-a-session-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|Session ID|

> Example responses

> 403 Response

```json
{
  "request_id": "5342217f-7fa2-4626-a6c9-c979a04671a6",
  "error_type": "operation_not_allowed",
  "error_codes": [
    "string"
  ]
}
```

<h3 id="complete-a-session-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Session completed successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|[ErrorResponse](#schemaerrorresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Session not found|[ErrorResponse](#schemaerrorresponse)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: sessions:app sessions:browser ), SessionSecret
</aside>

## Update session 3DS Method completion indicator

<a id="opIdupdateSessionThreeDsMethodCompletion"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/sessions"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := sessions.ThreeDsMethodCompletionRequest{ThreeDsMethodCompletion: common.Y}

response, err := api.Sessions.Update3dsMethodCompletion("session_id", request, "session_secret") // "session_secret" is optional
if err != nil {
	return nil, err
}

return response, nil
```

`PUT /sessions/{id}/issuer-fingerprint`

Update the session's 3DS Method completion indicator based on the result of accessing the 3DS Method URL.

> Body parameter

```json
{
  "three_ds_method_completion": "Y"
}
```

<h3 id="update-session-3ds-method-completion-indicator-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|Session ID|
|body|body|[ThreeDsMethodCompletion](#schemathreedsmethodcompletion)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  },
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "_links": {
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  }
}
```

<h3 id="update-session-3ds-method-completion-indicator-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Session updated successfully|[GetSessionResponseAfterChannelDataSupplied](#schemagetsessionresponseafterchanneldatasupplied)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|[ErrorResponse](#schemaerrorresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Session not found|[ErrorResponse](#schemaerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable channel information|[ErrorResponse](#schemaerrorresponse)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: sessions:browser ), SessionSecret
</aside>

<h1 id="checkout-com-api-reference-standalone-account-updater">Standalone Account Updater</h1>

Retrieve updated card details

## Get updated card credentials

<a id="opIdRetrieveUpdatedCardDetails"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/account-updater/cards \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/account-updater/cards HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "source_options": {
    "card": {
      "number": "5436424242424242",
      "expiry_month": 5,
      "expiry_year": 2025
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/account-updater/cards',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/account-updater/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/account-updater/cards', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/account-updater/cards', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/account-updater/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/account-updater/cards", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/account-updater/cards";
      
      string json = @"{
  ""source_options"": {
    ""card"": {
      ""number"": ""5436424242424242"",
      ""expiry_month"": 5,
      ""expiry_year"": 2025
    }
  }
}";
      AccountUpdaterRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(AccountUpdaterRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(AccountUpdaterRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /account-updater/cards`

Retrieve updated card credentials. <p/> 
The following card schemes are supported: 

- Mastercard
- Visa
- American Express

> Body parameter

```json
{
  "source_options": {
    "card": {
      "number": "5436424242424242",
      "expiry_month": 5,
      "expiry_year": 2025
    }
  }
}
```

<h3 id="get-updated-card-credentials-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[AccountUpdaterRequest](#schemaaccountupdaterrequest)|false|none|

> Example responses

> Request was successful, updated card info is available in the response

```json
{
  "account_update_status": "CARD_UPDATED",
  "card": {
    "encrypted_card_number": "3nCryp73dFPANv4lu3",
    "bin": "543642",
    "last4": "4242",
    "expiry_month": 5,
    "expiry_year": 2025,
    "fingerprint": "abc123fingerprint"
  }
}
```

```json
{
  "account_update_status": "CARD_CLOSED"
}
```

```json
{
  "account_update_status": "CARD_EXPIRY_UPDATED",
  "card": {
    "encrypted_card_number": "3nCryp73dFPANv4lu3",
    "bin": "543642",
    "last4": "4242",
    "expiry_month": 5,
    "expiry_year": 2025,
    "fingerprint": "abc123fingerprint"
  }
}
```

```json
{
  "account_update_status": "UPDATE_FAILED",
  "account_update_failure_code": "UP_TO_DATE"
}
```

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="get-updated-card-credentials-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Request was successful, updated card info is available in the response|[AccountUpdaterResponse](#schemaaccountupdaterresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Not authorized to perform this action|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:real-time-account-updater )
</aside>

<h1 id="checkout-com-api-reference-tokens">Tokens</h1>

Create a token that represents a card's credentials that you can later use to request a payment, without you having to process or store any sensitive information.

## Request a token

<a id="opIdrequestAToken"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using Checkout.Tokens;

ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .PublicKey("public_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CardTokenRequest request = new CardTokenRequest
{
    Number = "4543474002249996",
    ExpiryMonth = 10,
    ExpiryYear = 2027,
    Name = "FirstName LastName",
    Cvv = "123",
    BillingAddress = new Address()
    {
        AddressLine1 = "123 High St.",
        AddressLine2 = "Flat 456",
        City = "London",
        State = "GB",
        Zip = "SW1A 1AA",
        Country = CountryCode.GB
    },
    Phone = new Phone() {Number = "4155552671", CountryCode = "1"}
};

try
{
    CardTokenResponse response = await api.TokensClient().Request(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/tokens"
)

// API Keys
api, err := checkout.
			Builder().
			Previous().
			WithPublicKey("public_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := tokens.CardTokenRequest{
	Type:        tokens.Card,
	Number:      "123456789",
	ExpiryMonth: 10,
	ExpiryYear:  2025,
	Name:        "Name",
	CVV:         "123",
	BillingAddress: &common.Address{
		AddressLine1: "123 High St.",
		AddressLine2: "Flat 456",
		City:         "London",
		State:        "GB",
		Zip:          "SW1A 1AA",
		Country:      common.GB,
	},
	Phone: &common.Phone{
		CountryCode: "1",
		Number:      "415 555 2671",
	},
}

response, err := api.Tokens.RequestCardToken(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.Address;
import com.checkout.common.CountryCode;
import com.checkout.tokens.CardTokenRequest;
import com.checkout.tokens.CardTokenResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .publicKey("public_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

CardTokenRequest request = CardTokenRequest.builder()
    .number("1234567")
    .expiryMonth(10)
    .expiryYear(2027)
    .billingAddress(Address.builder()
    .addressLine1("123 High St.")
    .addressLine2("Flat 456")
    .city("London")
    .state("GB")
    .zip("SW1A 1AA")
    .country(CountryCode.GB)
    .build())
    .build();

try {
    CardTokenResponse response = api.tokensClient().requestCardToken(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const token = await cko.tokens.request({
		// infered type: "applepay"
		token_data: {
			version: 'EC_v1',
			data: 't7GeajLB9skXB6QSWfEpPA4WPhDqB7ekdd+F7588arLzve...',
			signature: 'MIAGCSqGbGUg...',
			header: {
				ephemeralPublicKey: 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgA...',
				publicKeyHash: 'tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6...',
				transactionId: '3cee89679130a4b...',
			},
		},
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Phone;
use Checkout\Environment;
use Checkout\Tokens\CardTokenRequest;

$api = CheckoutSdk::builder()
    ->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->publicKey("public_ey")
    ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$request = new CardTokenRequest();
$request->name = "Name";
$request->number = "123456789";
$request->expiry_year = 2027;
$request->expiry_month = 10;
$request->cvv = "123";
$request->billing_address = $address;
$request->phone = $phone;

try {
    $response = $api->getTokensClient()->requestCardToken($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone, Address
from checkout_sdk.common.enums import Country
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.tokens.tokens import CardTokenRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .public_key('public_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

request = CardTokenRequest()
request.number = 'number'
request.expiry_month = 10
request.expiry_year = 2027
request.cvv = 123
request.name = 'Name'
request.billing_address = address
request.phone = phone

try:
    response = api.tokens.request_card_token(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /tokens`

Exchange card details for a reference token that can be used later to request a card payment. Tokens are single use and expire after 15 minutes.
To create a token, please authenticate using your public key.

**Please note:** You should only use the `card` type for testing purposes.

> Body parameter

```json
{
  "type": "card",
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "cvv": "956",
  "pin": "12",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}
```

<h3 id="request-a-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[TokenRequest](#schematokenrequest)|false|none|

> Example responses

> Reference token created successfully

```json
{
  "type": "card",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK"
}
```

```json
{
  "type": "googlepay",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "token_format": "pan_only"
}
```

```json
{
  "type": "applepay",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "token_format": "cryptogram_3ds"
}
```

```json
{
  "type": "cvv",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00"
}
```

```json
{
  "type": "pin",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00"
}
```

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="request-a-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Reference token created successfully|[TokenResponse](#schematokenresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway timeout|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiPublicKey
</aside>

## Get token metadata

<a id="opIdgetTokenMetadata"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata \
  -H 'Accept: application/json' \
  -H 'Authorization: API_KEY'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'API_KEY'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/tokens/{tokenId}/metadata";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /tokens/{tokenId}/metadata`

Returns the details for an active token without consuming it. The token remains usable after this call.

Possible responses:

 - `200` – Active and recently-used tokens (still within the 15-minute window).
 - `410` – Expired tokens.
 - `404` – Not found tokens, or of an unsupported type (for example, `cvv` or `pin`). 

<h3 id="get-token-metadata-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|tokenId|path|string|true|The token ID|

> Example responses

> 200 Response

```json
{
  "token": "tok_4gzeau5o2uqubbk6fudbloo47a",
  "type": "card",
  "expires_on": "2026-05-14T10:11:12Z",
  "expiry_month": 12,
  "expiry_year": 2030,
  "scheme": "Visa",
  "last4": "4242",
  "bin": "424242",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "JPMORGAN CHASE BANK NA",
  "issuer_country": "US",
  "product_id": "A",
  "product_type": "Visa Traditional",
  "billing_address": {
    "city": "London",
    "country": "GB"
  }
}
```

> 410 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="get-token-metadata-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Token metadata retrieved successfully|[TokenMetadataResponse](#schematokenmetadataresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Token not found, or token type does not support metadata retrieval|None|
|410|[Gone](https://tools.ietf.org/html/rfc7231#section-6.5.9)|Token has expired|[ValidationError](#schemavalidationerror)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway timeout|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey, OAuth ( Scopes: vault:tokens-metadata )
</aside>

<h1 id="checkout-com-api-reference-transfers">Transfers</h1>

Transfer funds while managing the entities to transfer money to recoup funds from a seller, return money from a refund or to make up the difference when running a promotion.

## Initiate a transfer of funds

<a id="opIdcreateTransfer"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Transfers;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Transfers)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CreateTransferRequest createTransferRequest =
    new CreateTransferRequest
    {
        Source = new TransferSourceRequest {Amount = 100, Id = "entity_source_id"},
        Destination = new TransferDestinationRequest {Id = "entity_destination_id"},
        TransferType = TransferType.Commission
    };

try
{
    CreateTransferResponse createTransferResponse =
        await api.TransfersClient().InitiateTransferOfFunds(createTransferRequest);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/transfers"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Transfers}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := transfers.TransferRequest{
	Reference:    "reference",
	TransferType: transfers.Commission,
	Source: &transfers.TransferSourceRequest{
		Id:     "entity_id",
		Amount: 100,
	},
	Destination: &transfers.TransferDestinationRequest{Id: "destination_id"},
}

response, err := api.Transfers.InitiateTransferOfFounds(request, nil)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.transfers.CreateTransferResponse;
import com.checkout.transfers.CreateTransferRequest;
import com.checkout.transfers.TransferDestinationRequest;
import com.checkout.transfers.TransferSourceRequest;
import com.checkout.transfers.TransferType;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.TRANSFERS_CREATE) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

CreateTransferRequest request = CreateTransferRequest.builder()
    .reference("reference")
    .transferType(TransferType.COMMISSION)
        .source(TransferSourceRequest.builder()
        .id("entity_id")
        .amount(100L)
        .build())
    .destination(TransferDestinationRequest.builder()
        .id("destination_id")
        .build())
    .build();

try {
    CreateTransferResponse response = api.transfersClient().initiateTransferOfFunds(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Transfers\CreateTransferRequest;
use Checkout\Transfers\TransferDestination;
use Checkout\Transfers\TransferSource;
use Checkout\Transfers\TransferType;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Transfers])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$transferSource = new TransferSource();
$transferSource->id = "ent_kidtcgc3ge5unf4a5i6enhnr5m";
$transferSource->amount = 100;

$transferDestination = new TransferDestination();
$transferDestination->id = "ent_w4jelhppmfiufdnatam37wrfc4";

$request = new CreateTransferRequest();
$request->transfer_type = TransferType::$commission;
$request->source = $transferSource;
$request->destination = $transferDestination;

try {
    $response = $api->getTransfersClient()->initiateTransferOfFunds($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.transfers.transfers import CreateTransferRequest, TransferType, TransferSource, TransferDestination

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.TRANSFERS]) 
    .build()
)

source = TransferSource()
source.id = "source_id"
source.amount = 100

destination = TransferDestination()
destination.id = "destination_id"

request = CreateTransferRequest()
request.reference = "superhero1234"
request.transfer_type = TransferType.COMMISSION
request.source = source
request.destination = destination

try:
    # Optional: idempotencyKey as a second parameter for idempotent requests
    response = api.transfers.initiate_transfer_of_funds(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /transfers`

Initiate a transfer of funds from source entity to destination entity.

> Body parameter

```json
{
  "reference": "superhero1234",
  "transfer_type": "commission",
  "source": {
    "id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
    "amount": 100,
    "currency": "GBP"
  },
  "destination": {
    "id": "ent_w4jelhppmfiufdnatam37wrfc4"
  }
}
```

<h3 id="initiate-a-transfer-of-funds-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|true|An idempotency key for safely retrying transfer requests|
|body|body|[CreateTransferRequest](#schemacreatetransferrequest)|true|The details of the transfer.|

> Example responses

> 201 Response

```json
{
  "id": "tra_y3oqhf46pyzuxjbcn2giaqnb4",
  "status": "pending",
  "_links": {
    "self": {
      "href": "https://transfers.checkout.com/transfers/tra_y3oqhf46pyzuxjbcn2giaqnb4"
    }
  }
}
```

<h3 id="initiate-a-transfer-of-funds-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Transfer successfully created.|[CreateTransferResponse](#schemacreatetransferresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="initiate-a-transfer-of-funds-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: transfers:create ), ApiSecretKey
</aside>

## Retrieve a transfer

<a id="opIdgetTransferDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Transfers;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Transfers)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CreateTransferRequest createTransferRequest =
    new CreateTransferRequest
    {
        Source = new TransferSourceRequest {Amount = 100, Id = "entity_source_id"},
        Destination = new TransferDestinationRequest {Id = "entity_destination_id"},
        TransferType = TransferType.Commission
    };

try
{
    TransferDetailsResponse transferDetailsResponse = await api.TransfersClient().RetrieveATransfer("transfer_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Transfers}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Transfers.RetrieveTransfer("transfer_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.transfers.TransferDetailsResponse;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.TRANSFERS_VIEW) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    TransferDetailsResponse response = api.transfersClient().retrieveATransfer("transfer_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Transfers])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getTransfersClient()->retrieveATransfer("transfer_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.TRANSFERS]) 
    .build()
)

try:
    response = api.transfers.retrieve_a_transfer("transfer_id")
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /transfers/{id}`

Retrieve transfer details using the transfer identifier.

<h3 id="retrieve-a-transfer-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The transfer identifier|

> Example responses

> 200 Response

```json
{
  "id": "tra_y3oqhf46pyzuxjbcn2giaqnb4",
  "reference": "superhero1234",
  "status": "rejected",
  "transfer_type": "commission",
  "requested_on": "2021-12-15T09:15:02.3845763Z",
  "reason_codes": [
    "destination_transfers_capability_disabled",
    "source_and_destination_currency_accounts_must_be_different"
  ],
  "source": {
    "entity_id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
    "amount": 100,
    "currency": "GBP"
  },
  "destination": {
    "entity_id": "ent_bqik7gxoavwhmy3ot6kvmbx6py"
  },
  "_links": {
    "self": {
      "href": "https://transfers.checkout.com/transfers/tra_y3oqhf46pyzuxjbcn2giaqnb4"
    }
  }
}
```

<h3 id="retrieve-a-transfer-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Transfer found|[Transfer](#schematransfer)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Transfer not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="retrieve-a-transfer-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: transfers:view ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-workflows">Workflows</h1>

Use Workflows to start receiving webhook notifications for your payments, disputes, and sub-entities.

## Get all workflows

<a id="opIdgetAllWorkflows"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    GetWorkflowsResponse response = await api.WorkflowsClient().GetWorkflows();
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.GetWorkflows()
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.GetWorkflowsResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    GetWorkflowsResponse response = api.workflowsClient().getWorkflows().get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.getAll();
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->getWorkflows();
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.get_workflows()
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /workflows`

Get all workflows

> Example responses

> 200 Response

```json
{
  "data": [
    {
      "id": "wf_wlu3wxc26jounofs5iez75qaqa",
      "name": "Webhooks workflow",
      "active": true,
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
        }
      }
    }
  ]
}
```

<h3 id="get-all-workflows-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflows retrieved successfully|[get-all-workflows-response](#schemaget-all-workflows-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Add a workflow

<a id="opIdaddWorkflow"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows;
using Checkout.Workflows.Actions;
using Checkout.Workflows.Actions.Request;
using Checkout.Workflows.Conditions.Request;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CreateWorkflowRequest request = new CreateWorkflowRequest
{
    Name = "Webhooks workflow",
    Conditions = new List<WorkflowConditionRequest>
    {
        new EventWorkflowConditionRequest
        {
            Events = new Dictionary<string, ISet<string>>
            {
                {
                    "gateway",
                    new HashSet<string>
                    {
                        "payment_approved",
                        "payment_declined",
                        "card_verification_declined",
                        "card_verified",
                        "payment_authorization_incremented",
                        "payment_authorization_increment_declined",
                        "payment_capture_declined",
                        "payment_captured",
                        "payment_refund_declined",
                        "payment_refunded",
                        "payment_void_declined",
                        "payment_voided"
                    }
                },
                {
                    "dispute",
                    new HashSet<string>
                    {
                        "dispute_canceled",
                        "dispute_evidence_required",
                        "dispute_expired",
                        "dispute_lost",
                        "dispute_resolved",
                        "dispute_won"
                    }
                }
            }
        },
        new EntityWorkflowConditionRequest
        {
            Entities = new List<string>
            {
                "ent_xyfdshfudosfdshfdiosfds", "ent_fidjosfjdisofdjsifdosfu"
            }
        },
        new ProcessingChannelWorkflowConditionRequest
        {
            ProcessingChannels = new List<string> {"pc_axclravnqf5u5ejkweijnp5zc4"}
        }
    },
    Actions = new List<WorkflowActionRequest>
    {
        new WebhookWorkflowActionRequest
        {
            Url = "https://example.com/webhooks",
            Headers = new Dictionary<string, string>
            {
                {"Authorization", "70ed20ff-ba31-4ea3-b3ef-772f2be1cbdf"}
            },
            Signature = new WebhookSignature
            {
                Method = "HMACSHA256", Key = "8V8x0dLK%AyD*DNS8JJr"
            }
        }
    }
};

try
{
    CreateWorkflowResponse response = await api.WorkflowsClient().CreateWorkflow(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/workflows"
	"github.com/checkout/checkout-sdk-go/workflows/actions"
	"github.com/checkout/checkout-sdk-go/workflows/conditions"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

entityCondition := conditions.NewEntityConditionRequest()
entityCondition.Entities = []string{"workflow_entity_id"}

processingChannelCondition := conditions.NewProcessingChannelConditionRequest()
processingChannelCondition.ProcessingChannels = []string{"processing_channel_id"}

webhookAction := actions.NewWebhookActionRequest()
webhookAction.Url = "https://docs.checkout.com/webhook"
webhookAction.Headers = map[string]string{}
webhookAction.Signature = &actions.WebhookSignature{
	Key:    "8V8x0dLK%*DNS8JJr",
	Method: "HMACSHA256",
}

request := workflows.CreateWorkflowRequest{
	Name:       "name",
	Conditions: []conditions.ConditionsRequest{entityCondition, processingChannelCondition},
	Actions:    []actions.ActionsRequest{webhookAction},
}

response, err := api.WorkFlows.CreateWorkflow(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.CreateWorkflowRequest;
import com.checkout.workflows.CreateWorkflowResponse;
import com.checkout.workflows.actions.WebhookSignature;
import com.checkout.workflows.actions.request.WebhookWorkflowActionRequest;
import com.checkout.workflows.conditions.request.EntityWorkflowConditionRequest;
import com.checkout.workflows.conditions.request.ProcessingChannelWorkflowConditionRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

WebhookWorkflowActionRequest workflowActionRequest = WebhookWorkflowActionRequest.builder()
    .url("https://docs.checkout.com/webhook")
    .headers(new HashMap<>())
    .signature(WebhookSignature.builder().key("8V8x0dLK%AyD*DNS8JJr").method("HMACSHA256").build())
    .build();

EntityWorkflowConditionRequest condition1 = EntityWorkflowConditionRequest.builder()
    .entities(Collections.singletonList("workflow_entity_id"))
    .build();

ProcessingChannelWorkflowConditionRequest condition2 = ProcessingChannelWorkflowConditionRequest.builder()
    .processingChannels(Collections.singletonList("processing_channel_id"))
    .build();

CreateWorkflowRequest request = CreateWorkflowRequest.builder()
    .name("name")
    .actions(Collections.singletonList(workflowActionRequest))
    .conditions(Arrays.asList(condition1, condition2))
    .build();

try {
    CreateWorkflowResponse response = api.workflowsClient().createWorkflow(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.add({
		name: 'Webhooks workflow',
		conditions: [
			{
				type: 'event',
				events: {
					gateway: ['payment_approved', 'payment_declined'],
				},
			},
			{
				type: 'entity',
				entities: ['ent_djigcqx4clmufo2sasgomgpqsq'],
			},
			{
				type: 'processing_channel',
				processing_channels: ['pc_zs5fqhybzc2e3jmq3efvybybpq'],
			},
		],
		actions: [
			{
				type: 'webhook',
				url: 'https://example.com/webhooks',
				headers: {
					Authorization: '70ed20ff-ba31-4ea3-b3ef-772f2be1cbdf',
				},
				signature: {
					method: 'HMACSHA256',
					key: '8V8x0dLK%AyD*DNS8JJr',
				},
			},
		],
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Workflows\Actions\WebhookSignature;
use Checkout\Workflows\Actions\WebhookWorkflowActionRequest;
use Checkout\Workflows\Conditions\EntityWorkflowConditionRequest;
use Checkout\Workflows\Conditions\EventWorkflowConditionRequest;
use Checkout\Workflows\Conditions\ProcessingChannelWorkflowConditionRequest;
use Checkout\Workflows\CreateWorkflowRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$signature = new WebhookSignature();
$signature->key = "8V8x0dLK%AyD*DNS8JJr";
$signature->method = "HMACSHA256";

$actionRequest = new WebhookWorkflowActionRequest();
$actionRequest->url = "https://google.com/fail";
$actionRequest->signature = $signature;

$entityWorkflowConditionRequest = new EntityWorkflowConditionRequest();
$entityWorkflowConditionRequest->entities = ["entity_id"];

$eventWorkflowConditionRequest = new EventWorkflowConditionRequest();
$eventWorkflowConditionRequest->events = [
    "gateway" => ["payment_approved",
        "payment_declined",
        "card_verification_declined",
        "card_verified",
        "payment_authorization_incremented",
        "payment_authorization_increment_declined",
        "payment_capture_declined",
        "payment_captured",
        "payment_refund_declined",
        "payment_refunded",
        "payment_void_declined",
        "payment_voided"],
    "dispute" => ["dispute_canceled",
        "dispute_evidence_required",
        "dispute_expired",
        "dispute_lost",
        "dispute_resolved",
        "dispute_won"]
];

$processingChannelWorkflowConditionRequest = new ProcessingChannelWorkflowConditionRequest();
$processingChannelWorkflowConditionRequest->processing_channels = ["pc_sdsdsdwdewdsdds"];

$request = new CreateWorkflowRequest();
$request->actions = [$actionRequest];
$request->conditions = [$entityWorkflowConditionRequest, $eventWorkflowConditionRequest,
    $processingChannelWorkflowConditionRequest];
$request->name = "Workflow";
$request->active = true;

try {
    $response = $api->getWorkflowsClient()->createWorkflow($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.workflows.workflows import WebhookSignature, WebhookWorkflowActionRequest, EntityWorkflowConditionRequest, 
                                        EventWorkflowConditionRequest, ProcessingChannelWorkflowConditionRequest, CreateWorkflowRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

signature = WebhookSignature()
signature.key = 'signature'
signature.method = 'HMACSHA256'

action_request = WebhookWorkflowActionRequest()
action_request.url = 'https://docs.checkout.com/fail'
action_request.headers = {}
action_request.signature = signature

entity_condition_request = EntityWorkflowConditionRequest()
entity_condition_request.entities = ['entity_id']

event_condition_request = EventWorkflowConditionRequest()
event_condition_request.events = {'gateway': ['payment_approved',
                                              'payment_declined',
                                              'card_verification_declined',
                                              'card_verified',
                                              'payment_authorization_incremented',
                                              'payment_authorization_increment_declined',
                                              'payment_capture_declined',
                                              'payment_captured',
                                              'payment_refund_declined',
                                              'payment_refunded',
                                              'payment_void_declined',
                                              'payment_voided'],
                                  'dispute': ['dispute_canceled',
                                              'dispute_evidence_required',
                                              'dispute_expired',
                                              'dispute_lost',
                                              'dispute_resolved',
                                              'dispute_won']}

processing_channel_condition_request = ProcessingChannelWorkflowConditionRequest()
processing_channel_condition_request.processing_channels = ['processing_channel_id']

request = CreateWorkflowRequest()
request.actions = [action_request]
request.conditions = [entity_condition_request, event_condition_request,
                      processing_channel_condition_request]
request.name = 'Name'
request.active = True

try:
    response = api.workflows.create_workflow(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /workflows`

Add a new workflow

> Body parameter

```json
{
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_declined",
          "card_verification_declined",
          "card_verified",
          "payment_authorization_incremented",
          "payment_authorization_increment_declined",
          "payment_capture_declined",
          "payment_captured",
          "payment_refund_declined",
          "payment_refunded",
          "payment_void_declined",
          "payment_voided"
        ],
        "dispute": [
          "dispute_canceled",
          "dispute_evidence_required",
          "dispute_expired",
          "dispute_lost",
          "dispute_resolved",
          "dispute_won"
        ]
      }
    },
    {
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ]
    },
    {
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ]
    }
  ],
  "actions": [
    {
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      }
    }
  ]
}
```

<h3 id="add-a-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[add-workflow-request](#schemaadd-workflow-request)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "wf_wlu3wxc26jounofs5iez75qaqa",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}
```

<h3 id="add-a-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Workflow added successfully|[add-workflow-response](#schemaadd-workflow-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||none|
|201|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Get a workflow

<a id="opIdgetWorkflow"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    GetWorkflowResponse response = await api.WorkflowsClient().GetWorkflow("workflow_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.GetWorkflow("workflow_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.GetWorkflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    GetWorkflowResponse response = api.workflowsClient().getWorkflow("workflow_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.get('wf_5zm7uccsc6bencaujumvutvfem');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->getWorkflow("workflow_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.get_workflow('workflow_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /workflows/{workflowId}`

Get the details of a workflow

<h3 id="get-a-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|

> Example responses

> 200 Response

```json
{
  "id": "wf_34pacj7ae6wexju4avpecxvp6e",
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74e",
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_pending",
          "payment_declined"
        ]
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/conditions/wfc_tisekcawefze3l27uaai6hz74e"
        }
      }
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74y",
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ],
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/conditions/wfc_tisekcawefze3l27uaai6hz74y"
        }
      }
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz26y",
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ],
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/conditions/wfc_tisekcawefze3l27uaai6hz26y"
        }
      }
    }
  ],
  "actions": [
    {
      "id": "wfa_itja4x7zgzye3andzqq62u4hvq",
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/actions/wfa_itja4x7zgzye3andzqq62u4hvq"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}
```

<h3 id="get-a-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow retrieved successfully|[get-workflow-response](#schemaget-workflow-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Remove a workflow

<a id="opIdremoveWorkflow"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    EmptyResponse response = await api.WorkflowsClient().RemoveWorkflow("workflow_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.RemoveWorkflow("workflow_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
    CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    EmptyResponse response = api.workflowsClient().removeWorkflow("workflow_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.remove('wf_rou7m32mhmyeblg4xebx5pueoi');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->removeWorkflow("workflow_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.remove_workflow('workflow_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`DELETE /workflows/{workflowId}`

Removes a workflow so it is no longer being executed.
Actions of already executed workflows will be still processed.

<h3 id="remove-a-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|

<h3 id="remove-a-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow removed successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|204|Cko-Request-Id|string||none|
|204|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Patch a workflow

<a id="opIdpatchWorkflow"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

UpdateWorkflowRequest request = new UpdateWorkflowRequest {Name = "workflow_name"};

try
{
    UpdateWorkflowResponse response = await api.WorkflowsClient().UpdateWorkflow("workflow_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/workflows"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := workflows.UpdateWorkflowRequest{
	Name:   "New Name",
	Active: true,
}

response, err := api.WorkFlows.UpdateWorkflow("workflow_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.UpdateWorkflowRequest;
import com.checkout.workflows.UpdateWorkflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

UpdateWorkflowRequest request = UpdateWorkflowRequest.builder()
    .name("new name")
    .build();

try {
    UpdateWorkflowResponse response = api.workflowsClient().updateWorkflow("workflow_id", request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.patch('wf_2i7z3lwdoe5uzmomm7yzrytqdy', {
		name: 'Webhooks workflow updated',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Workflows\UpdateWorkflowRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new UpdateWorkflowRequest();
$request->name = "workflow_name";

try {
    $response = $api->getWorkflowsClient()->updateWorkflow("workflow_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.workflows.workflows import UpdateWorkflowRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

request = UpdateWorkflowRequest()
request.name = 'New name'
request.active = False

try:
    response = api.workflows.update_workflow('workflow_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PATCH /workflows/{workflowId}`

Update a workflow.

> Body parameter

```json
{
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_pending",
          "payment_declined"
        ]
      }
    },
    {
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ]
    },
    {
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ]
    }
  ],
  "actions": [
    {
      "workflow_action_id": "wfa_itja4x7zgzye3andzqq62u4hvq",
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      }
    }
  ]
}
```

<h3 id="patch-a-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|body|body|[patch-workflow-request](#schemapatch-workflow-request)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "wf_c7svxlvo2bbuva4f6s3xu4f7wm",
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74e",
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_pending",
          "payment_declined"
        ]
      }
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74y",
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ]
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz26y",
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ]
    }
  ],
  "actions": [
    {
      "id": "wfa_itja4x7zgzye3andzqq62u4hvq",
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      }
    }
  ],
  "_links": {
    "self": {
      "href": "http://flow.cko.lon/client/workflows/wf_c7svxlvo2bbuva4f6s3xu4f7wm"
    }
  }
}
```

<h3 id="patch-a-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow updated successfully|[patch-workflow-response](#schemapatch-workflow-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Add a workflow action

<a id="opIdaddWorkflowAction"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "type": "webhook",
  "url": "https://example.com/webhooks",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions";
      
      string json = @"{
  ""type"": ""webhook"",
  ""url"": ""https://example.com/webhooks"",
  ""headers"": {
    ""Authorization"": ""<AUTHORIZATION_UUID>""
  }
}";
      add-update-workflow-action-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-update-workflow-action-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-update-workflow-action-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /workflows/{workflowId}/actions`

Adds a workflow action. Actions determine what the workflow will do when it is triggered.

> Body parameter

```json
{
  "type": "webhook",
  "url": "https://example.com/webhooks",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  }
}
```

<h3 id="add-a-workflow-action-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|body|body|[add-update-workflow-action-request](#schemaadd-update-workflow-action-request)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "wfa_wlu3wxc26jounofs5iez75qaqa",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/actions/wfa_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}
```

<h3 id="add-a-workflow-action-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Workflow action added successfully|[add-workflow-action-response](#schemaadd-workflow-action-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||none|
|201|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Update a workflow action

<a id="opIdupdateWorkflowAction"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Actions;
using Checkout.Workflows.Actions.Request;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

WorkflowActionRequest request = new WebhookWorkflowActionRequest
{
    Url = "https://example.com/webhooks/checkout",
    Headers = new Dictionary<string, string>
    {
        {"Authorization", "70ed20ff-ba31-4ea3-b3ef-772f2be1cbdf"}
    },
    Signature = new WebhookSignature {Method = "HMACSHA256", Key = "public-signing-key"}
};

try
{
    await api.WorkflowsClient().UpdateWorkflowAction("workflow_id", "action_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/workflows/actions"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := actions.NewWebhookActionRequest()
request.Url = "https://docs.checkout.com/webhook"
request.Headers = map[string]string{}
request.Signature = &actions.WebhookSignature{
	Key:    "8V8x0dLK%*DNS8JJr",
	Method: "HMACSHA256",
}

response, err := api.WorkFlows.UpdateWorkflowAction("workflow_id", "action_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.actions.WebhookSignature;
import com.checkout.workflows.actions.request.WebhookWorkflowActionRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

WebhookWorkflowActionRequest request = WebhookWorkflowActionRequest.builder()
    .signature(WebhookSignature.builder().key("8V8x0dLK%AyD*DNS8JJr").method("HMACSHA256").build())
    .headers(new HashMap<>())
    .url("https://docs.checkout.com/fail")
    .build();

try {
    EmptyResponse response = api.workflowsClient().updateWorkflowAction("workflow_id", "action_id", request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.updateAction('wf_2i7z3lwdoe5uzmomm7yzrytqdy', 'wfa_5qxwp7stgcqufj63mkr42xyeqi', {
		type: 'webhook',
		url: 'https://example.com/updated',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Workflows\Actions\WebhookSignature;
use Checkout\Workflows\Actions\WebhookWorkflowActionRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$webhookSignature = new WebhookSignature();
$webhookSignature->method = "HMACSHA256";
$webhookSignature->key = "public-signing-key";

$request = new WebhookWorkflowActionRequest();
$request->url = "workflow_name";
$request->signature = "workflow_name";

try {
    $response = $api->getWorkflowsClient()->updateWorkflowAction("workflow_id", "action_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.workflows.workflows import WebhookSignature, WebhookWorkflowActionRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

signature = WebhookSignature()
signature.key = '8V8x0dLK%AyD*DNS8JJr'
signature.method = 'HMACSHA256'

request = WebhookWorkflowActionRequest()
request.url = 'https://docs.checkout.com/fail/fake'
request.signature = signature

try:
    response = api.workflows.update_workflow_action('workflow_id', 'action_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PUT /workflows/{workflowId}/actions/{workflowActionId}`

Update a workflow action.

> Body parameter

```json
{
  "type": "webhook",
  "url": "https://example.com/webhooks",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  }
}
```

<h3 id="update-a-workflow-action-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|workflowActionId|path|string|true|The workflow action identifier|
|body|body|[add-update-workflow-action-request](#schemaadd-update-workflow-action-request)|true|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="update-a-workflow-action-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow action updated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow or workflow action not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Remove a workflow action

<a id="opIdremoveWorkflowAction"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/actions/{workflowActionId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /workflows/{workflowId}/actions/{workflowActionId}`

Removes a workflow action. Actions determine what the workflow will do when it is triggered.

<h3 id="remove-a-workflow-action-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|workflowActionId|path|string|true|The workflow action identifier|

> Example responses

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="remove-a-workflow-action-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow action removed successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow or workflow action not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|204|Cko-Request-Id|string||none|
|204|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Add a workflow condition

<a id="opIdaddWorkflowCondition"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "type": "event",
  "events": {
    "gateway": [
      "payment_approved",
      "payment_pending",
      "payment_declined"
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions";
      
      string json = @"{
  ""type"": ""event"",
  ""events"": {
    ""gateway"": [
      ""payment_approved"",
      ""payment_pending"",
      ""payment_declined""
    ]
  }
}";
      add-update-workflow-condition-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(add-update-workflow-condition-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(add-update-workflow-condition-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /workflows/{workflowId}/conditions`

Adds a workflow condition. Conditions determine when the workflow will trigger.

> Body parameter

```json
{
  "type": "event",
  "events": {
    "gateway": [
      "payment_approved",
      "payment_pending",
      "payment_declined"
    ]
  }
}
```

<h3 id="add-a-workflow-condition-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|body|body|[add-update-workflow-condition-request](#schemaadd-update-workflow-condition-request)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "wfc_wlu3wxc26jounofs5iez75qaqa",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}
```

<h3 id="add-a-workflow-condition-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Workflow condition added successfully|[add-workflow-condition-response](#schemaadd-workflow-condition-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||none|
|201|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Update a workflow condition

<a id="opIdupdateWorkflowCondition"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Conditions.Request;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

WorkflowConditionRequest request = new EntityWorkflowConditionRequest();

try
{
    EmptyResponse response = await api.WorkflowsClient().UpdateWorkflowCondition("workflow_id", "condition_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/workflows/conditions"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := conditions.NewEventConditionRequest()
request.Events = map[string][]string{}

response, err := api.WorkFlows.UpdateWorkflowCondition("workflow_id", "condition_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.conditions.request.EventWorkflowConditionRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

EventWorkflowConditionRequest request = EventWorkflowConditionRequest.builder()
    .events(new HashMap<>())
    .build();

try {
    EmptyResponse response = api.workflowsClient().updateWorkflowCondition("workflow_id", "condition_id", request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.updateCondition(
		'wf_2i7z3lwdoe5uzmomm7yzrytqdy',
		'wfc_ybu4t6aruwju5l6ymlc67ya5ne',
		{
			type: 'event',
			events: {
				gateway: ['card_verification_declined', 'card_verified', 'payment_approved'],
			},
		}
	);
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Workflows\Conditions\EntityWorkflowConditionRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new EntityWorkflowConditionRequest();

try {
    $response = $api->getWorkflowsClient()->updateWorkflowCondition("workflow_id", "condition_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.workflows.workflows import EventWorkflowConditionRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

request = EventWorkflowConditionRequest()
request.events = {'gateway': ['card_verified',
                              'card_verification_declined',
                              'payment_approved',
                              'payment_pending',
                              'payment_declined',
                              'payment_voided',
                              'payment_captured',
                              'payment_refunded'],
                  'dispute': ['dispute_canceled',
                              'dispute_evidence_required',
                              'dispute_expired',
                              'dispute_lost',
                              'dispute_resolved',
                              'dispute_won']}

try:
    response = api.workflows.update_workflow_condition('workflow_id', 'condition_id', request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PUT /workflows/{workflowId}/conditions/{workflowConditionId}`

Update a workflow condition.

> Body parameter

```json
{
  "type": "event",
  "events": {
    "gateway": [
      "payment_approved",
      "payment_pending",
      "payment_declined"
    ]
  }
}
```

<h3 id="update-a-workflow-condition-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|workflowConditionId|path|string|true|The workflow condition identifier|
|body|body|[add-update-workflow-condition-request](#schemaadd-update-workflow-condition-request)|true|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="update-a-workflow-condition-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow condition updated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow or workflow condition not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Remove a workflow condition

<a id="opIdremoveWorkflowCondition"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId} \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId} HTTP/1.1

```

```javascript

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/conditions/{workflowConditionId}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /workflows/{workflowId}/conditions/{workflowConditionId}`

Removes a workflow condition. Conditions determine when the workflow will trigger.

<h3 id="remove-a-workflow-condition-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|workflowConditionId|path|string|true|The workflow condition identifier|

<h3 id="remove-a-workflow-condition-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow condition removed successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow or workflow condition not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|204|Cko-Request-Id|string||none|
|204|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Test a workflow

<a id="opIdtestWorkflow"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "event_types": {
    "gateway": [
      "payment_approved",
      "payment_captured"
    ],
    "issuing": [
      "3ds_card_enrolled",
      "3ds_card_information_changed"
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/workflows/{workflowId}/test";
      
      string json = @"{
  ""event_types"": {
    ""gateway"": [
      ""payment_approved"",
      ""payment_captured""
    ],
    ""issuing"": [
      ""3ds_card_enrolled"",
      ""3ds_card_information_changed""
    ]
  }
}";
      test-workflow-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(test-workflow-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(test-workflow-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /workflows/{workflowId}/test`

Validate a workflow in our Sandbox environment.

> Body parameter

```json
{
  "event_types": {
    "gateway": [
      "payment_approved",
      "payment_captured"
    ],
    "issuing": [
      "3ds_card_enrolled",
      "3ds_card_information_changed"
    ]
  }
}
```

<h3 id="test-a-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|workflowId|path|string|true|The workflow identifier|
|body|body|[test-workflow-request](#schematest-workflow-request)|true|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "event_types_invalid"
  ]
}
```

<h3 id="test-a-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Workflow test initiated|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Workflow not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<h3 id="test-a-workflow-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|204|Cko-Request-Id|string||none|
|204|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows )
</aside>

## Get event types

<a id="opIdgetEventTypes"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Events;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    ItemsResponse<EventTypesResponse> response = await api.WorkflowsClient().GetEventTypes();
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.GetEventTypes()
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.ItemsResponse;
import com.checkout.OAuthScope;
import com.checkout.workflows.events.WorkflowEventTypes;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    ItemsResponse<WorkflowEventTypes> response = api.workflowsClient().getEventTypes().get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.getEventTypes();
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->getEventTypes();
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.get_event_types()
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /workflows/event-types`

Get a list of sources and their events for building new workflows

> Example responses

> 200 Response

```json
[
  {
    "id": "gateway",
    "display_name": "Gateway",
    "description": "Events from the Checkout.com payment gateway",
    "events": [
      {
        "id": "payment_approved",
        "display_name": "Payment Authorized",
        "description": "Occurs when a payment is successfully authorized by the Checkout.com payment gateway"
      }
    ]
  }
]
```

<h3 id="get-event-types-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event types retrieved successfully|[get-event-types-response](#schemaget-event-types-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:workflows ), ApiSecretKey
</aside>

## Get an event

<a id="opIdgetWorkflowEvent"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Events;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    GetEventResponse response = await api.WorkflowsClient().GetEvent("event_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowEvents}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.GetEvent("event_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.events.GetEventResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_EVENTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    GetEventResponse response = api.workflowsClient().getEvent("event_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.getEvent('evt_hsfxtjwidv6ulah5gdbiqwqnka');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->getEvent("event_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_EVENTS]) 
    .build()
)

try:
    response = api.workflows.get_event('event_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /workflows/events/{eventId}`

Get the details of an event

<h3 id="get-an-event-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|eventId|path|string|true|The event identifier|

> Example responses

> 200 Response

```json
{
  "id": "evt_az5sblvku4ge3dwpztvyizgcau",
  "source": "gateway",
  "type": "payment_approved",
  "timestamp": "2019-08-24T14:15:22Z",
  "version": "1.0.0",
  "data": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
    "amount": 6540,
    "currency": "USD",
    "approved": true,
    "status": "Authorized",
    "auth_code": "643381",
    "payment_type": "Regular",
    "response_code": "10000",
    "response_summary": "Approved",
    "scheme_id": "745664329470123",
    "3ds": {
      "downgraded": true,
      "enrolled": "N"
    },
    "flagged": true,
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "line1": "123 High St",
        "line2": "Flat 456",
        "town_city": "London",
        "state": "GB",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 12,
      "expiry_year": 2025,
      "scheme": "VISA'",
      "last_4": "4242",
      "fingerprint": "54710B428R6H190D29087FF265D8F48DF1AD34EDE41C27CBFF9D23C1A14D9876",
      "bin": "424242",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer": "MERCHANT UK",
      "issuer_country": "GB",
      "product_id": "F",
      "product_type": "Visa Classic",
      "avs_check": "G",
      "cvv_check": "Y"
    },
    "processing": {
      "acquirer_transaction_id": "501979547418712947435",
      "retrieval_reference_number": "682643929865"
    },
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "event_links": {
      "payment": "https://{prefix}.api.checkout.com/payments/pay_wlu3wxc26jounofs5iez75qaqa",
      "dispute": "https://{prefix}.api.checkout.com/disputes/dsp_jfh5iqceqau0qw3ccf3p"
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne"
    },
    "processed_on": "2020-02-27T11:26:59Z",
    "reference": "ORD-5023-4E89",
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    }
  },
  "action_invocations": [
    {
      "workflow_id": "wf_c7svxlvo2bbuva4f6s3xu4f7wm",
      "workflow_action_id": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa",
      "status": "pending",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/events/evt_az5sblvku4ge3dwpztvyizgcau/actions/wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/events/evt_az5sblvku4ge3dwpztvyizgcau"
    },
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_wlu3wxc26jounofs5iez75qaqa"
    },
    "dispute": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_jfh5iqceqau0qw3ccf3p"
    }
  }
}
```

<h3 id="get-an-event-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Event retrieved successfully|[get-event-response](#schemaget-event-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Event not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:events ), ApiSecretKey
</aside>

## Get action invocations

<a id="opIdgetWorkflowActionInvocations"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Actions.Response;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    WorkflowActionInvocationsResponse response = await api.WorkflowsClient().GetActionInvocations("event_id", "action_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowEvents, configuration.FlowWorkflows}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.GetActionInvocations("event_id", "action_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.actions.response.WorkflowActionInvocationsResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_EVENTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    WorkflowActionInvocationsResponse response = api.workflowsClient().getActionInvocations("event_id", "action_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->getActionInvocations("event_id", "action_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_EVENTS, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.get_action_invocations('event_id', 'action_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /workflows/events/{eventId}/actions/{workflowActionId}`

Get the details of a workflow action executed for the specified event.

<h3 id="get-action-invocations-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|eventId|path|string|true|The event identifier|
|workflowActionId|path|string|true|The workflow action identifier|

> Example responses

> 200 Response

```json
{
  "workflow_id": "wf_c7svxlvo2bbuva4f6s3xu4f7wm",
  "event_id": "evt_az5sblvku4ge3dwpztvyizgcau",
  "workflow_action_id": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa",
  "action_type": "webhook",
  "status": "successful",
  "action_invocations": [
    {
      "invocation_id": "ivc_az5sblvku4ge3dwpztvyizgcau",
      "timestamp": "2019-05-23T08:26:59Z",
      "retry": false,
      "succeeded": true,
      "final": true,
      "result_details": {
        "status_code": 200,
        "url": "https://example.com/webhooks",
        "headers": {
          "Authorization": "<AUTHORIZATION_UUID>"
        },
        "response_received_timestamp": "2019-05-23T08:27:01Z"
      }
    },
    {
      "invocation_id": "ivc_az5sblvku4ge3dwpztvyizgcau",
      "timestamp": "2019-05-23T08:27:01Z",
      "retry": true,
      "succeeded": false,
      "final": false,
      "result_details": {
        "status_code": 500,
        "url": "https://example.com/webhooks",
        "headers": {
          "Authorization": "<AUTHORIZATION_UUID>"
        },
        "response_received_timestamp": "2019-05-23T08:27:01Z"
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/events/evt_az5sblvku4ge3dwpztvyizgcau/actions/wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
    }
  }
}
```

<h3 id="get-action-invocations-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Workflow action retrieved successfully|[get-invocations-response](#schemaget-invocations-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Event not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:events flow:workflows ), ApiSecretKey
</aside>

## Reflow by event

<a id="opIdreflowByEvent"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Reflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    ReflowResponse response = await api.WorkflowsClient().ReflowByEvent("event_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.ReflowByEvent("event_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.reflow.ReflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    ReflowResponse response = api.workflowsClient().reflowByEvent("event_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.reflowByEvent('evt_hsfxtjwidv6ulah5gdbiqwqnka');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->reflowByEvent("event_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW]) 
    .build()
)

try:
    response = api.workflows.reflow_by_event('event_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /workflows/events/{eventId}/reflow`

Reflows a past event denoted by the event ID and triggers the actions of any workflows with matching conditions.

<h3 id="reflow-by-event-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|eventId|path|string|true|The unique identifier for the event to be reflowed.|

<h3 id="reflow-by-event-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Event reflow initiated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Events for reflow not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||none|
|202|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:reflow ), ApiSecretKey
</aside>

## Reflow by event and workflow

<a id="opIdreflowByEventAndWorkflow"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Reflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    ReflowResponse response = await api.WorkflowsClient().ReflowByEventAndWorkflow("event_id", "workflow_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.ReflowByEventAndWorkflow("event_id", "workflow_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.reflow.ReflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    ReflowResponse response = api.workflowsClient().reflowByEventAndWorkflow("event_id", "workflow_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.reflowByEventAndWorkflow(
		'evt_hsfxtjwidv6ulah5gdbiqwqnka',
		'wf_6p73pesh75vu7fqo6p6exhpe54'
	);
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->reflowByEventAndWorkflow("event_id", "workflow_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.reflow_by_event_and_workflow('event_id', 'workflow_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /workflows/events/{eventId}/workflow/{workflowId}/reflow`

Reflows a past event by event ID and workflow ID. Triggers all the actions of a specific event and workflow combination if the event denoted by the event ID matches the workflow conditions.

<h3 id="reflow-by-event-and-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|eventId|path|string|true|The unique identifier for the event to be reflowed.|
|workflowId|path|string|true|The identifier of the workflow whose actions you want to trigger.|

<h3 id="reflow-by-event-and-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Event reflow initiated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Events for reflow not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||none|
|202|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:reflow ), ApiSecretKey
</aside>

## Reflow

<a id="opIdreflowEvents"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Reflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

ReflowRequest request = new ReflowByEventsRequest()
{
    Events = new List<string>()
    {
        "evt_lzmo6p0i3612judj754w1ngtil",
        "evt_05z6xuagtti48ajyfbuekg6a0a"
    },
    Workflows = new List<string>()
    {
        "wf_sq8jnqi9i749hhb470bu308uk2",
        "wf_bz91q7i4ks4sr0kasmas2xhp56"

    }
};

try
{
    ReflowResponse response = await api.WorkflowsClient().Reflow(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/workflows/reflows"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := &reflows.ReflowByEventsRequest{
	Events:          []string{"event_id_1", "event_id_2"},
	ReflowWorkflows: reflows.ReflowWorkflows{Workflows: []string{"workflow_id_1", "workflow_id_2"}},
}

response, err := api.WorkFlows.Reflow(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.reflow.ReflowByEventsRequest;
import com.checkout.workflows.reflow.ReflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

ReflowByEventsRequest request = ReflowByEventsRequest.builder()
    .events(Arrays.asList("event_id_1", "event_id_2"))
    .workflows(Arrays.asList("workflow_id_1", "workflow_id_2"))
    .build();

try {
    ReflowResponse response = api.workflowsClient().reflow(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.reflowEventsByEventAndWorkflowIds(
		['evt_hsfxtjwidv6ulah5gdbiqwqnka'],
		['wf_6p73pesh75vu7fqo6p6exhpe54']
	);
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;
use Checkout\Workflows\Reflows\ReflowByEventsRequest;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$request = new ReflowByEventsRequest();
$request->events = array("evt_lzmo6p0i3612judj754w1ngtil");
$request->workflows = array("wf_sq8jnqi9i749hhb470bu308uk2");

try {
    $response = $api->getWorkflowsClient()->reflow($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes
from checkout_sdk.workflows.workflows import ReflowByEventsRequest

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

request = ReflowByEventsRequest()
request.events = ['event_id_1', 'event_id_2']
request.workflows = ['workflow_id_1', 'workflow_id_2']

try:
    response = api.workflows.reflow(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /workflows/events/reflow`

Reflow past events attached to multiple event IDs and workflow IDs, or to multiple subject IDs and workflow IDs. If you don't specify any workflow IDs, all matching workflows will be retriggered.

> Body parameter

```json
{
  "events": [
    "evt_lzmo6p0i3612judj754w1ngtil",
    "evt_05z6xuagtti48ajyfbuekg6a0a"
  ],
  "workflows": [
    "wf_sq8jnqi9i749hhb470bu308uk2",
    "wf_bz91q7i4ks4sr0kasmas2xhp56"
  ]
}
```

<h3 id="reflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|any|true|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "event_ids_invalid",
    "workflow_ids_invalid"
  ]
}
```

<h3 id="reflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Event reflow initiated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Events for reflow not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ids-validation-error](#schemaids-validation-error)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||none|
|202|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:reflow ), ApiSecretKey
</aside>

## Get subject events

<a id="opIdgetSubjectEvents"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Events;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    SubjectEventsResponse response = await api.WorkflowsClient().GetSubjectEvents("subject_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow, configuration.FlowEvents}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.GetSubjectEvents("subject_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.events.SubjectEventsResponse;
import com.checkout.workflows.reflow.ReflowByEventsRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW_EVENTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

ReflowByEventsRequest request = ReflowByEventsRequest.builder()
    .events(Arrays.asList("event_id_1", "event_id_2"))
    .workflows(Arrays.asList("workflow_id_1", "workflow_id_2"))
    .build();

try {
    SubjectEventsResponse response = api.workflowsClient().getSubjectEvents("subject_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.getSubjectEvents('pay_ymhp72mhubcejmjjwcupzalm5e');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->getSubjectEvents("subject_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_EVENTS]) 
    .build()
)

try:
    response = api.workflows.get_subject_events('subject_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /workflows/events/subject/{subjectId}`

Get all events that relate to a specific subject

<h3 id="get-subject-events-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|subjectId|path|string|true|The event identifier|

> Example responses

> 200 Response

```json
{
  "data": [
    {
      "id": "evt_zrrgsvsr47ou7fng4shy4mtf64",
      "type": "payment_approved",
      "timestamp": "2019-05-23T08:25:53Z",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/events/evt_zrrgsvsr47ou7fng4shy4mtf64"
        }
      }
    },
    {
      "id": "evt_wgwdfyem4ode5furs5swyy6b2u",
      "type": "payment_captured",
      "timestamp": "2019-05-24T07:00:53Z",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/events/evt_zrrgsvsr47ou7fng4shy4mtf64"
        }
      }
    }
  ]
}
```

<h3 id="get-subject-events-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Events retrieved successfully|[subject-events-response](#schemasubject-events-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Subject not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||none|
|200|Cko-Version|string||none|
|404|Cko-Request-Id|string||none|
|404|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:events ), ApiSecretKey
</aside>

## Reflow by subject

<a id="opIdreflowBySubject"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Reflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    ReflowResponse response = await api.WorkflowsClient().ReflowBySubject("subject_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.ReflowBySubject("subject_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.reflow.ReflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    ReflowResponse response = api.workflowsClient().reflowBySubject("subject_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.reflowBySubject('pay_ymhp72mhubcejmjjwcupzalm5e');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->reflowBySubject("subject_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.reflow_by_subject('subject_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /workflows/events/subject/{subjectId}/reflow`

Reflows the events associated with a subject ID (for example, a payment ID or a dispute ID) and triggers the actions of any workflows with matching conditions.

<h3 id="reflow-by-subject-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|subjectId|path|string|true|The subject identifier (for example, a payment ID or a dispute ID). The events associated with these subjects will be reflowed.|

<h3 id="reflow-by-subject-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Event reflow initiated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Events for reflow not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||none|
|202|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:reflow ), ApiSecretKey
</aside>

## Reflow by subject and workflow

<a id="opIdreflowBySubjectAndWorkflow"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Workflows.Reflows;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Flow)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    ReflowResponse response = await api.WorkflowsClient().ReflowBySubjectAndWorkflow("subject_id", "workflow_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Flow}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.WorkFlows.ReflowBySubjectAndWorkflow("subject_id", "workflow_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.workflows.reflow.ReflowResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    ReflowResponse response = api.workflowsClient().reflowBySubjectAndWorkflow("subject_id", "workflow_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	let workflows = await cko.workflows.reflowBySubjectAndWorkflow(
		'pay_ymhp72mhubcejmjjwcupzalm5e',
		'wf_6p73pesh75vu7fqo6p6exhpe54'
	);
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Flow])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getWorkflowsClient()->reflowBySubjectAndWorkflow("subject_id", "workflow_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) 
    .build()
)

try:
    response = api.workflows.reflow_by_subject_and_workflow('subject_id', 'workflow_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /workflows/events/subject/{subjectId}/workflow/{workflowId}/reflow`

Reflows the events associated with a subject ID (for example, a payment ID or a dispute ID) and triggers the actions of the specified workflow if the conditions match.

<h3 id="reflow-by-subject-and-workflow-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|subjectId|path|string|true|The subject identifier (for example, a payment ID or a dispute ID). The events associated with these subjects will be reflowed.|
|workflowId|path|string|true|The identifier of the workflow whose actions you want to trigger.|

<h3 id="reflow-by-subject-and-workflow-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Event reflow initiated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Events for reflow not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||none|
|202|Cko-Version|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: flow flow:reflow ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-agentic-commerce-protocol">Agentic Commerce Protocol</h1>

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px">Beta</span>

Enable AI platforms to create scoped, single-use payment tokens to securely process agentic commerce transactions. This implementation follows the [Agentic Commerce Protocol (ACP)](https://developers.openai.com/commerce/specs/payment) delegated payment specification.

To onboard your AI platform, [contact us](https://www.checkout.com/contact-sales).

## Create a delegated payment token

<a id="opIddelegatePayment"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Signature: eyJtZX...' \
  -H 'Timestamp: 2025-09-25T10:30:00Z' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'API-Version: 2025-09-29' \
  -H 'Authorization: API_KEY'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment HTTP/1.1

Content-Type: application/json
Accept: application/json
Signature: eyJtZX...
Timestamp: 2025-09-25T10:30:00Z
Cko-Idempotency-Key: string
API-Version: 2025-09-29

```

```javascript
const inputBody = '{
  "payment_method": {
    "type": "card",
    "card_number_type": "fpan",
    "number": "4242424242424242",
    "exp_month": "11",
    "exp_year": "2026",
    "name": "Jane Doe",
    "cvc": "223",
    "cryptogram": "gXc5UCLnM6ckD7pjM1TdPA==",
    "eci_value": "07",
    "checks_performed": [
      "avs",
      "cvv",
      "ani",
      "auth0"
    ],
    "iin": "123456",
    "display_card_funding_type": "credit",
    "display_wallet_type": "wallet",
    "display_brand": "Visa",
    "display_last4": "4242",
    "metadata": {
      "issuing_bank": "temp"
    }
  },
  "allowance": {
    "reason": "one_time",
    "max_amount": 10000,
    "currency": "USD",
    "merchant_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
    "checkout_session_id": "1PQrsT",
    "expires_at": "2025-10-09T07:20:50.52Z"
  },
  "billing_address": {
    "name": "John Doe",
    "line_one": "123 Fake St.",
    "line_two": "Unit 1",
    "city": "San Francisco",
    "state": "CA",
    "postal_code": "12345",
    "country": "US"
  },
  "risk_signals": [
    {
      "type": "card_testing",
      "score": 10,
      "action": "blocked"
    }
  ],
  "metadata": {
    "campaign": "q4"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Signature':'eyJtZX...',
  'Timestamp':'2025-09-25T10:30:00Z',
  'Cko-Idempotency-Key':'string',
  'API-Version':'2025-09-29',
  'Authorization':'API_KEY'
};

fetch('https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Signature' => 'eyJtZX...',
  'Timestamp' => '2025-09-25T10:30:00Z',
  'Cko-Idempotency-Key' => 'string',
  'API-Version' => '2025-09-29',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Signature': 'eyJtZX...',
  'Timestamp': '2025-09-25T10:30:00Z',
  'Cko-Idempotency-Key': 'string',
  'API-Version': '2025-09-29',
  'Authorization': 'API_KEY'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Signature' => 'eyJtZX...',
    'Timestamp' => '2025-09-25T10:30:00Z',
    'Cko-Idempotency-Key' => 'string',
    'API-Version' => '2025-09-29',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Signature": []string{"eyJtZX..."},
        "Timestamp": []string{"2025-09-25T10:30:00Z"},
        "Cko-Idempotency-Key": []string{"string"},
        "API-Version": []string{"2025-09-29"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/agentic_commerce/delegate_payment";
      
      string json = @"{
  ""payment_method"": {
    ""type"": ""card"",
    ""card_number_type"": ""fpan"",
    ""number"": ""4242424242424242"",
    ""exp_month"": ""11"",
    ""exp_year"": ""2026"",
    ""name"": ""Jane Doe"",
    ""cvc"": ""223"",
    ""cryptogram"": ""gXc5UCLnM6ckD7pjM1TdPA=="",
    ""eci_value"": ""07"",
    ""checks_performed"": [
      ""avs"",
      ""cvv"",
      ""ani"",
      ""auth0""
    ],
    ""iin"": ""123456"",
    ""display_card_funding_type"": ""credit"",
    ""display_wallet_type"": ""wallet"",
    ""display_brand"": ""Visa"",
    ""display_last4"": ""4242"",
    ""metadata"": {
      ""issuing_bank"": ""temp""
    }
  },
  ""allowance"": {
    ""reason"": ""one_time"",
    ""max_amount"": 10000,
    ""currency"": ""USD"",
    ""merchant_id"": ""cli_vkuhvk4vjn2edkps7dfsq6emqm"",
    ""checkout_session_id"": ""1PQrsT"",
    ""expires_at"": ""2025-10-09T07:20:50.52Z""
  },
  ""billing_address"": {
    ""name"": ""John Doe"",
    ""line_one"": ""123 Fake St."",
    ""line_two"": ""Unit 1"",
    ""city"": ""San Francisco"",
    ""state"": ""CA"",
    ""postal_code"": ""12345"",
    ""country"": ""US""
  },
  ""risk_signals"": [
    {
      ""type"": ""card_testing"",
      ""score"": 10,
      ""action"": ""blocked""
    }
  ],
  ""metadata"": {
    ""campaign"": ""q4""
  }
}";
      DelegatedPaymentRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(DelegatedPaymentRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(DelegatedPaymentRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /agentic_commerce/delegate_payment`

Creates a delegated payment token to securely enable Checkout.com merchants to process agentic payments.

The token secures cardholder credentials for use in agentic commerce transactions. You must provide: 
  - The card details
  - The spending constraints (allowance)
  - The Billing address
  - The risk signals

The request must include a valid HMAC-SHA256 signature in the `Signature` header and a timestamp in the `Timestamp` header to verify the request integrity.

> Body parameter

```json
{
  "payment_method": {
    "type": "card",
    "card_number_type": "fpan",
    "number": "4242424242424242",
    "exp_month": "11",
    "exp_year": "2026",
    "name": "Jane Doe",
    "cvc": "223",
    "cryptogram": "gXc5UCLnM6ckD7pjM1TdPA==",
    "eci_value": "07",
    "checks_performed": [
      "avs",
      "cvv",
      "ani",
      "auth0"
    ],
    "iin": "123456",
    "display_card_funding_type": "credit",
    "display_wallet_type": "wallet",
    "display_brand": "Visa",
    "display_last4": "4242",
    "metadata": {
      "issuing_bank": "temp"
    }
  },
  "allowance": {
    "reason": "one_time",
    "max_amount": 10000,
    "currency": "USD",
    "merchant_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
    "checkout_session_id": "1PQrsT",
    "expires_at": "2025-10-09T07:20:50.52Z"
  },
  "billing_address": {
    "name": "John Doe",
    "line_one": "123 Fake St.",
    "line_two": "Unit 1",
    "city": "San Francisco",
    "state": "CA",
    "postal_code": "12345",
    "country": "US"
  },
  "risk_signals": [
    {
      "type": "card_testing",
      "score": 10,
      "action": "blocked"
    }
  ],
  "metadata": {
    "campaign": "q4"
  }
}
```

<h3 id="create-a-delegated-payment-token-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Signature|header|string|true|A Base64-encoded HMAC-SHA256 signature used for request body integrity verification.|
|Timestamp|header|string(date-time)|true|The timestamp of the request, in RFC 3339 format (for example, `2026-03-11T10:30:00Z`).|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|API-Version|header|string|false|The API version to use for the request. If not specified, the default version (`2026-01-30`) is used.|
|body|body|[DelegatedPaymentRequest](#schemadelegatedpaymentrequest)|false|none|

#### Detailed descriptions

**Signature**: A Base64-encoded HMAC-SHA256 signature used for request body integrity verification.

Compute the signature as follows:
1. Concatenate the `Timestamp` header value (as a UTF-8 string) with the raw JSON request body (as a UTF-8 string).
2. Compute the HMAC-SHA256 hash of the concatenated string using your shared HMAC signing key.
3. Base64-encode the resulting hash.

Example: `Base64(HMAC-SHA256(key, Timestamp + RequestBody))`

**Timestamp**: The timestamp of the request, in RFC 3339 format (for example, `2026-03-11T10:30:00Z`).

The timestamp must be within 5 minutes of the server time. Requests with a timestamp outside this window are rejected with a `401` response.

**API-Version**: The API version to use for the request. If not specified, the default version (`2026-01-30`) is used.

> Example responses

> 201 Response

```json
{
  "id": "vt_abc123def456ghi789",
  "created": "2026-03-11T10:30:00Z",
  "metadata": {
    "psp": "checkout.com"
  }
}
```

<h3 id="create-a-delegated-payment-token-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Delegated payment token created successfully|[DelegatedPaymentResponse](#schemadelegatedpaymentresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Malformed JSON or unreadable request body|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid API key, or signature validation failure|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Merchant not enabled for the authenticated platform|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Idempotency key reused with a different request body|[DelegatedPaymentErrorResponse](#schemadelegatedpaymenterrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity. One or more fields failed validation|[DelegatedPaymentErrorResponse](#schemadelegatedpaymenterrorresponse)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|An unexpected error occurred while processing the request|[DelegatedPaymentErrorResponse](#schemadelegatedpaymenterrorresponse)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-inventory">Inventory</h1>

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px">Beta</span>

Manage stock levels for each product variant (e.g. size or color) and temporarily hold stock while an AI agent completes a checkout. Each hold can later be confirmed or cancelled, and automatically expires on its own if left unresolved. This prevents overselling, even when multiple agents are buying at the same time.
Holds work the same way regardless of which agentic commerce protocol is used.

Requires the `agentic:inventory` scope. To onboard your AI platform, <a href="https://www.checkout.com/contact-sales" target="_blank">contact us</a>.

## Get stock levels

<a id="opIdgetInventoryLevels"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /inventory/{variant_id}`

Returns the current stock levels and sellable availability for a single variant.

`available` is clamped to zero: `max(0, on_hand − reserved − safety_stock)` — this is the value
an availability feed should publish.

Requires the `agentic:inventory` scope. The merchant is resolved from the token claims; a variant
owned by another merchant returns `404`.

<h3 id="get-stock-levels-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|variant_id|path|string|true|The merchant-provided identifier for the variant.|
|expand|query|string|false|Set `expand=product` to embed an additional `product` field alongside the stock fields, containing the variant's product knowledge (merchandising details such as title, description, and images). Setting this parameter does not change how `available` or the other stock fields are calculated. If product knowledge has not been set for the variant, the `product` field is omitted.|

#### Detailed descriptions

**expand**: Set `expand=product` to embed an additional `product` field alongside the stock fields, containing the variant's product knowledge (merchandising details such as title, description, and images). Setting this parameter does not change how `available` or the other stock fields are calculated. If product knowledge has not been set for the variant, the `product` field is omitted.

#### Enumerated Values

|Parameter|Value|
|---|---|
|expand|product|

> Example responses

> 200 Response

```json
{
  "variant_id": "var_123",
  "on_hand": 10,
  "reserved": 2,
  "safety_stock": 1,
  "available": 7,
  "state": "in_stock",
  "source": "managed",
  "created_on": "2026-07-01T09:15:00Z",
  "modified_on": "2026-07-13T14:02:11Z",
  "product": {
    "variant_id": "var_123",
    "title": "Classic leather belt, brown",
    "description": "A full-grain leather belt with a brushed nickel buckle.",
    "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
    "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
    "additional_image_urls": [
      "https://merchant.example.com/images/belt-brown-alt1.jpg"
    ],
    "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
    "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
    "sku": "BELT-BRN-001",
    "gtin": "00012345678905",
    "mpn": "MPN-4471",
    "brand": "Acme Leathercraft",
    "category": "Apparel & Accessories > Belts",
    "price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price_starts_at": "2026-08-01T00:00:00Z",
    "sale_price_ends_at": "2026-08-31T23:59:59Z",
    "group_id": "grp_belt_classic",
    "group_title": "Classic leather belt",
    "color": "Brown",
    "size": "M",
    "size_system": "US",
    "gender": "unisex",
    "condition": "new",
    "material": "Full-grain leather",
    "age_group": "adult",
    "length": 110,
    "width": 3.5,
    "height": 0.5,
    "dimension_unit": "cm",
    "weight": 0.2,
    "weight_unit": "kg",
    "expiration_date": "2027-01-01T00:00:00Z",
    "harmonized_system_code": "4203.30",
    "country_of_origin": "IT",
    "seller_name": "Acme Leathercraft Ltd",
    "seller_url": "https://acme-leathercraft.example.com",
    "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
    "seller_tos": "https://acme-leathercraft.example.com/terms",
    "created_on": "2026-08-01T09:15:00Z",
    "modified_on": "2026-08-13T14:02:11Z",
    "_links": {
      "self": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "set": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "delete": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      }
    }
  },
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-stock-levels-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The current stock levels for the variant.|[InventoryLevels](#schemainventorylevels)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The variant does not exist, or is owned by another merchant.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Set stock levels

<a id="opIdsetInventoryLevels"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "on_hand": 25,
  "safety_stock": 2,
  "reason": "stock take 2026-07"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}";

      
      string json = @"{
  ""on_hand"": 25,
  ""safety_stock"": 2,
  ""reason"": ""stock take 2026-07""
}";
      InventorySetLevelsRequest content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);
      
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, InventorySetLevelsRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(InventorySetLevelsRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /inventory/{variant_id}`

Sets the absolute stock levels for a variant (Managed mode and corrections). The call is an
upsert: it returns `201` when the inventory item is created and `200` when an existing item is
updated. Availability is recomputed and a `set` entry is written to the ledger. Active
reservations are never disturbed.

Requires the `agentic:inventory` scope.

> Body parameter

```json
{
  "on_hand": 25,
  "safety_stock": 2,
  "reason": "stock take 2026-07"
}
```

<h3 id="set-stock-levels-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|variant_id|path|string|true|The merchant-provided identifier for the variant.|
|body|body|[InventorySetLevelsRequest](#schemainventorysetlevelsrequest)|true|none|

> Example responses

> 200 Response

```json
{
  "variant_id": "var_123",
  "on_hand": 10,
  "reserved": 2,
  "safety_stock": 1,
  "available": 7,
  "state": "in_stock",
  "source": "managed",
  "created_on": "2026-07-01T09:15:00Z",
  "modified_on": "2026-07-13T14:02:11Z",
  "product": {
    "variant_id": "var_123",
    "title": "Classic leather belt, brown",
    "description": "A full-grain leather belt with a brushed nickel buckle.",
    "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
    "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
    "additional_image_urls": [
      "https://merchant.example.com/images/belt-brown-alt1.jpg"
    ],
    "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
    "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
    "sku": "BELT-BRN-001",
    "gtin": "00012345678905",
    "mpn": "MPN-4471",
    "brand": "Acme Leathercraft",
    "category": "Apparel & Accessories > Belts",
    "price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price_starts_at": "2026-08-01T00:00:00Z",
    "sale_price_ends_at": "2026-08-31T23:59:59Z",
    "group_id": "grp_belt_classic",
    "group_title": "Classic leather belt",
    "color": "Brown",
    "size": "M",
    "size_system": "US",
    "gender": "unisex",
    "condition": "new",
    "material": "Full-grain leather",
    "age_group": "adult",
    "length": 110,
    "width": 3.5,
    "height": 0.5,
    "dimension_unit": "cm",
    "weight": 0.2,
    "weight_unit": "kg",
    "expiration_date": "2027-01-01T00:00:00Z",
    "harmonized_system_code": "4203.30",
    "country_of_origin": "IT",
    "seller_name": "Acme Leathercraft Ltd",
    "seller_url": "https://acme-leathercraft.example.com",
    "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
    "seller_tos": "https://acme-leathercraft.example.com/terms",
    "created_on": "2026-08-01T09:15:00Z",
    "modified_on": "2026-08-13T14:02:11Z",
    "_links": {
      "self": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "set": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "delete": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      }
    }
  },
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="set-stock-levels-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The variant already existed and its levels were updated.|[InventoryLevels](#schemainventorylevels)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|The inventory item was created.|[InventoryLevels](#schemainventorylevels)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request validation failed.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Get product knowledge

<a id="opIdgetInventoryProduct"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /inventory/{variant_id}/product`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Returns the product knowledge for a single variant.

Requires the `agentic:inventory` scope. The merchant is resolved from the token claims; a variant
owned by another merchant, or one with no product knowledge set, returns `404`.

<h3 id="get-product-knowledge-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|variant_id|path|string|true|The merchant-provided identifier for the variant.|

> Example responses

> 200 Response

```json
{
  "variant_id": "var_123",
  "title": "Classic leather belt, brown",
  "description": "A full-grain leather belt with a brushed nickel buckle.",
  "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
  "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
  "additional_image_urls": [
    "https://merchant.example.com/images/belt-brown-alt1.jpg"
  ],
  "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
  "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
  "sku": "BELT-BRN-001",
  "gtin": "00012345678905",
  "mpn": "MPN-4471",
  "brand": "Acme Leathercraft",
  "category": "Apparel & Accessories > Belts",
  "price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price_starts_at": "2026-08-01T00:00:00Z",
  "sale_price_ends_at": "2026-08-31T23:59:59Z",
  "group_id": "grp_belt_classic",
  "group_title": "Classic leather belt",
  "color": "Brown",
  "size": "M",
  "size_system": "US",
  "gender": "unisex",
  "condition": "new",
  "material": "Full-grain leather",
  "age_group": "adult",
  "length": 110,
  "width": 3.5,
  "height": 0.5,
  "dimension_unit": "cm",
  "weight": 0.2,
  "weight_unit": "kg",
  "expiration_date": "2027-01-01T00:00:00Z",
  "harmonized_system_code": "4203.30",
  "country_of_origin": "IT",
  "seller_name": "Acme Leathercraft Ltd",
  "seller_url": "https://acme-leathercraft.example.com",
  "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
  "seller_tos": "https://acme-leathercraft.example.com/terms",
  "created_on": "2026-08-01T09:15:00Z",
  "modified_on": "2026-08-13T14:02:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "delete": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-product-knowledge-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The product knowledge for the variant.|[InventoryProductKnowledge](#schemainventoryproductknowledge)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No product knowledge exists for the variant, or the variant is owned by another
merchant.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Set product knowledge

<a id="opIdsetInventoryProduct"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "title": "Classic leather belt, brown",
  "description": "A full-grain leather belt with a brushed nickel buckle.",
  "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
  "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
  "additional_image_urls": [
    "https://merchant.example.com/images/belt-brown-alt1.jpg"
  ],
  "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
  "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
  "sku": "BELT-BRN-001",
  "gtin": "00012345678905",
  "mpn": "MPN-4471",
  "brand": "Acme Leathercraft",
  "category": "Apparel & Accessories > Belts",
  "price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price_starts_at": "2026-08-01T00:00:00Z",
  "sale_price_ends_at": "2026-08-31T23:59:59Z",
  "group_id": "grp_belt_classic",
  "group_title": "Classic leather belt",
  "color": "Brown",
  "size": "M",
  "size_system": "US",
  "gender": "unisex",
  "condition": "new",
  "material": "Full-grain leather",
  "age_group": "adult",
  "length": 110,
  "width": 3.5,
  "height": 0.5,
  "dimension_unit": "cm",
  "weight": 0.2,
  "weight_unit": "kg",
  "expiration_date": "2027-01-01T00:00:00Z",
  "harmonized_system_code": "4203.30",
  "country_of_origin": "IT",
  "seller_name": "Acme Leathercraft Ltd",
  "seller_url": "https://acme-leathercraft.example.com",
  "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
  "seller_tos": "https://acme-leathercraft.example.com/terms"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product";

      
      string json = @"{
  ""title"": ""Classic leather belt, brown"",
  ""description"": ""A full-grain leather belt with a brushed nickel buckle."",
  ""product_url"": ""https://merchant.example.com/products/classic-leather-belt-brown"",
  ""image_url"": ""https://merchant.example.com/images/belt-brown-main.jpg"",
  ""additional_image_urls"": [
    ""https://merchant.example.com/images/belt-brown-alt1.jpg""
  ],
  ""video_url"": ""https://merchant.example.com/videos/belt-brown.mp4"",
  ""model_3d_url"": ""https://merchant.example.com/models/belt-brown.glb"",
  ""sku"": ""BELT-BRN-001"",
  ""gtin"": ""00012345678905"",
  ""mpn"": ""MPN-4471"",
  ""brand"": ""Acme Leathercraft"",
  ""category"": ""Apparel & Accessories > Belts"",
  ""price"": {
    ""amount"": 1999,
    ""currency"": ""USD""
  },
  ""sale_price"": {
    ""amount"": 1999,
    ""currency"": ""USD""
  },
  ""sale_price_starts_at"": ""2026-08-01T00:00:00Z"",
  ""sale_price_ends_at"": ""2026-08-31T23:59:59Z"",
  ""group_id"": ""grp_belt_classic"",
  ""group_title"": ""Classic leather belt"",
  ""color"": ""Brown"",
  ""size"": ""M"",
  ""size_system"": ""US"",
  ""gender"": ""unisex"",
  ""condition"": ""new"",
  ""material"": ""Full-grain leather"",
  ""age_group"": ""adult"",
  ""length"": 110,
  ""width"": 3.5,
  ""height"": 0.5,
  ""dimension_unit"": ""cm"",
  ""weight"": 0.2,
  ""weight_unit"": ""kg"",
  ""expiration_date"": ""2027-01-01T00:00:00Z"",
  ""harmonized_system_code"": ""4203.30"",
  ""country_of_origin"": ""IT"",
  ""seller_name"": ""Acme Leathercraft Ltd"",
  ""seller_url"": ""https://acme-leathercraft.example.com"",
  ""seller_privacy_policy"": ""https://acme-leathercraft.example.com/privacy"",
  ""seller_tos"": ""https://acme-leathercraft.example.com/terms""
}";
      InventorySetProductRequest content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);
      
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, InventorySetProductRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(InventorySetProductRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /inventory/{variant_id}/product`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Sets the product knowledge for a variant. The call is an upsert: it returns `201` when the
product knowledge is created and `200` when it is updated.

Requires the `agentic:inventory` scope.

> Body parameter

```json
{
  "title": "Classic leather belt, brown",
  "description": "A full-grain leather belt with a brushed nickel buckle.",
  "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
  "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
  "additional_image_urls": [
    "https://merchant.example.com/images/belt-brown-alt1.jpg"
  ],
  "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
  "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
  "sku": "BELT-BRN-001",
  "gtin": "00012345678905",
  "mpn": "MPN-4471",
  "brand": "Acme Leathercraft",
  "category": "Apparel & Accessories > Belts",
  "price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price_starts_at": "2026-08-01T00:00:00Z",
  "sale_price_ends_at": "2026-08-31T23:59:59Z",
  "group_id": "grp_belt_classic",
  "group_title": "Classic leather belt",
  "color": "Brown",
  "size": "M",
  "size_system": "US",
  "gender": "unisex",
  "condition": "new",
  "material": "Full-grain leather",
  "age_group": "adult",
  "length": 110,
  "width": 3.5,
  "height": 0.5,
  "dimension_unit": "cm",
  "weight": 0.2,
  "weight_unit": "kg",
  "expiration_date": "2027-01-01T00:00:00Z",
  "harmonized_system_code": "4203.30",
  "country_of_origin": "IT",
  "seller_name": "Acme Leathercraft Ltd",
  "seller_url": "https://acme-leathercraft.example.com",
  "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
  "seller_tos": "https://acme-leathercraft.example.com/terms"
}
```

<h3 id="set-product-knowledge-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|variant_id|path|string|true|The merchant-provided identifier for the variant.|
|body|body|[InventorySetProductRequest](#schemainventorysetproductrequest)|true|none|

> Example responses

> 200 Response

```json
{
  "variant_id": "var_123",
  "title": "Classic leather belt, brown",
  "description": "A full-grain leather belt with a brushed nickel buckle.",
  "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
  "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
  "additional_image_urls": [
    "https://merchant.example.com/images/belt-brown-alt1.jpg"
  ],
  "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
  "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
  "sku": "BELT-BRN-001",
  "gtin": "00012345678905",
  "mpn": "MPN-4471",
  "brand": "Acme Leathercraft",
  "category": "Apparel & Accessories > Belts",
  "price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price_starts_at": "2026-08-01T00:00:00Z",
  "sale_price_ends_at": "2026-08-31T23:59:59Z",
  "group_id": "grp_belt_classic",
  "group_title": "Classic leather belt",
  "color": "Brown",
  "size": "M",
  "size_system": "US",
  "gender": "unisex",
  "condition": "new",
  "material": "Full-grain leather",
  "age_group": "adult",
  "length": 110,
  "width": 3.5,
  "height": 0.5,
  "dimension_unit": "cm",
  "weight": 0.2,
  "weight_unit": "kg",
  "expiration_date": "2027-01-01T00:00:00Z",
  "harmonized_system_code": "4203.30",
  "country_of_origin": "IT",
  "seller_name": "Acme Leathercraft Ltd",
  "seller_url": "https://acme-leathercraft.example.com",
  "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
  "seller_tos": "https://acme-leathercraft.example.com/terms",
  "created_on": "2026-08-01T09:15:00Z",
  "modified_on": "2026-08-13T14:02:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "delete": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="set-product-knowledge-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The variant already had product knowledge, and it was updated.|[InventoryProductKnowledge](#schemainventoryproductknowledge)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|The product knowledge was created for the variant.|[InventoryProductKnowledge](#schemainventoryproductknowledge)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request validation failed.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Delete product knowledge

<a id="opIddeleteInventoryProduct"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/{variant_id}/product";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /inventory/{variant_id}/product`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Deletes the product knowledge for a variant. Stock levels and reservations for the variant are
unaffected.

Requires the `agentic:inventory` scope.

<h3 id="delete-product-knowledge-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|variant_id|path|string|true|The merchant-provided identifier for the variant.|

> Example responses

> 404 Response

```json
{
  "request_id": "req_7f3c9a12b8d54e6f",
  "error_type": "conflict",
  "error_codes": [
    "insufficient_stock"
  ],
  "variant_id": "var_123",
  "available": 1
}
```

<h3 id="delete-product-knowledge-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|The product knowledge existed and was deleted.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No product knowledge exists for the variant, or the variant is owned by another
merchant.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|204|Cko-Request-Id|string||The unique identifier of the request|
|204|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Adjust stock

<a id="opIdadjustInventory"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/adjustments \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/adjustments HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: string

```

```javascript
const inputBody = '{
  "variant_id": "var_123",
  "delta": -3,
  "reason": "damaged in warehouse"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/adjustments',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/adjustments',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/adjustments', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => 'string',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/adjustments', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/adjustments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/adjustments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/adjustments";
      
      string json = @"{
  ""variant_id"": ""var_123"",
  ""delta"": -3,
  ""reason"": ""damaged in warehouse""
}";
      InventoryAdjustmentRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(InventoryAdjustmentRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(InventoryAdjustmentRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/adjustments`

Applies a relative delta to a variant's physical stock (`on_hand`) with a mandatory reason (for example, damaged or found stock).
The call fails if the delta drives the physical stock below zero. An `adjust` entry is written to the ledger.

Requires the `agentic:inventory` scope.

> Body parameter

```json
{
  "variant_id": "var_123",
  "delta": -3,
  "reason": "damaged in warehouse"
}
```

<h3 id="adjust-stock-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|body|body|[InventoryAdjustmentRequest](#schemainventoryadjustmentrequest)|true|none|

> Example responses

> 200 Response

```json
{
  "variant_id": "var_123",
  "on_hand": 10,
  "reserved": 2,
  "safety_stock": 1,
  "available": 7,
  "state": "in_stock",
  "source": "managed",
  "created_on": "2026-07-01T09:15:00Z",
  "modified_on": "2026-07-13T14:02:11Z",
  "product": {
    "variant_id": "var_123",
    "title": "Classic leather belt, brown",
    "description": "A full-grain leather belt with a brushed nickel buckle.",
    "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
    "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
    "additional_image_urls": [
      "https://merchant.example.com/images/belt-brown-alt1.jpg"
    ],
    "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
    "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
    "sku": "BELT-BRN-001",
    "gtin": "00012345678905",
    "mpn": "MPN-4471",
    "brand": "Acme Leathercraft",
    "category": "Apparel & Accessories > Belts",
    "price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price_starts_at": "2026-08-01T00:00:00Z",
    "sale_price_ends_at": "2026-08-31T23:59:59Z",
    "group_id": "grp_belt_classic",
    "group_title": "Classic leather belt",
    "color": "Brown",
    "size": "M",
    "size_system": "US",
    "gender": "unisex",
    "condition": "new",
    "material": "Full-grain leather",
    "age_group": "adult",
    "length": 110,
    "width": 3.5,
    "height": 0.5,
    "dimension_unit": "cm",
    "weight": 0.2,
    "weight_unit": "kg",
    "expiration_date": "2027-01-01T00:00:00Z",
    "harmonized_system_code": "4203.30",
    "country_of_origin": "IT",
    "seller_name": "Acme Leathercraft Ltd",
    "seller_url": "https://acme-leathercraft.example.com",
    "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
    "seller_tos": "https://acme-leathercraft.example.com/terms",
    "created_on": "2026-08-01T09:15:00Z",
    "modified_on": "2026-08-13T14:02:11Z",
    "_links": {
      "self": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "set": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "delete": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      }
    }
  },
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="adjust-stock-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Idempotent replay of an earlier adjustment made with the same key.|[InventoryLevels](#schemainventorylevels)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|The adjustment was applied.|[InventoryLevels](#schemainventorylevels)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The variant does not exist.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The adjustment drives the physical stock below zero.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request validation failed.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cache-Control|string||Present on an idempotent replay to indicate the response is the cached original result.|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Submit a batch ingestion

<a id="opIdcreateInventoryIngestion"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/ingestions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/ingestions HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: string

```

```javascript
const inputBody = '{
  "mode": "upsert",
  "items": [
    {
      "variant_id": "var_123",
      "stock": {
        "on_hand": 25,
        "safety_stock": 2,
        "reason": "stock take 2026-07"
      },
      "product": {
        "title": "Classic leather belt, brown",
        "description": "A full-grain leather belt with a brushed nickel buckle.",
        "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
        "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
        "additional_image_urls": [
          "https://merchant.example.com/images/belt-brown-alt1.jpg"
        ],
        "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
        "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
        "sku": "BELT-BRN-001",
        "gtin": "00012345678905",
        "mpn": "MPN-4471",
        "brand": "Acme Leathercraft",
        "category": "Apparel & Accessories > Belts",
        "price": {
          "amount": 1999,
          "currency": "USD"
        },
        "sale_price": {
          "amount": 1999,
          "currency": "USD"
        },
        "sale_price_starts_at": "2026-08-01T00:00:00Z",
        "sale_price_ends_at": "2026-08-31T23:59:59Z",
        "group_id": "grp_belt_classic",
        "group_title": "Classic leather belt",
        "color": "Brown",
        "size": "M",
        "size_system": "US",
        "gender": "unisex",
        "condition": "new",
        "material": "Full-grain leather",
        "age_group": "adult",
        "length": 110,
        "width": 3.5,
        "height": 0.5,
        "dimension_unit": "cm",
        "weight": 0.2,
        "weight_unit": "kg",
        "expiration_date": "2027-01-01T00:00:00Z",
        "harmonized_system_code": "4203.30",
        "country_of_origin": "IT",
        "seller_name": "Acme Leathercraft Ltd",
        "seller_url": "https://acme-leathercraft.example.com",
        "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
        "seller_tos": "https://acme-leathercraft.example.com/terms"
      }
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/ingestions',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => 'string',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/ingestions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/ingestions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions";
      
      string json = @"{
  ""mode"": ""upsert"",
  ""items"": [
    {
      ""variant_id"": ""var_123"",
      ""stock"": {
        ""on_hand"": 25,
        ""safety_stock"": 2,
        ""reason"": ""stock take 2026-07""
      },
      ""product"": {
        ""title"": ""Classic leather belt, brown"",
        ""description"": ""A full-grain leather belt with a brushed nickel buckle."",
        ""product_url"": ""https://merchant.example.com/products/classic-leather-belt-brown"",
        ""image_url"": ""https://merchant.example.com/images/belt-brown-main.jpg"",
        ""additional_image_urls"": [
          ""https://merchant.example.com/images/belt-brown-alt1.jpg""
        ],
        ""video_url"": ""https://merchant.example.com/videos/belt-brown.mp4"",
        ""model_3d_url"": ""https://merchant.example.com/models/belt-brown.glb"",
        ""sku"": ""BELT-BRN-001"",
        ""gtin"": ""00012345678905"",
        ""mpn"": ""MPN-4471"",
        ""brand"": ""Acme Leathercraft"",
        ""category"": ""Apparel & Accessories > Belts"",
        ""price"": {
          ""amount"": 1999,
          ""currency"": ""USD""
        },
        ""sale_price"": {
          ""amount"": 1999,
          ""currency"": ""USD""
        },
        ""sale_price_starts_at"": ""2026-08-01T00:00:00Z"",
        ""sale_price_ends_at"": ""2026-08-31T23:59:59Z"",
        ""group_id"": ""grp_belt_classic"",
        ""group_title"": ""Classic leather belt"",
        ""color"": ""Brown"",
        ""size"": ""M"",
        ""size_system"": ""US"",
        ""gender"": ""unisex"",
        ""condition"": ""new"",
        ""material"": ""Full-grain leather"",
        ""age_group"": ""adult"",
        ""length"": 110,
        ""width"": 3.5,
        ""height"": 0.5,
        ""dimension_unit"": ""cm"",
        ""weight"": 0.2,
        ""weight_unit"": ""kg"",
        ""expiration_date"": ""2027-01-01T00:00:00Z"",
        ""harmonized_system_code"": ""4203.30"",
        ""country_of_origin"": ""IT"",
        ""seller_name"": ""Acme Leathercraft Ltd"",
        ""seller_url"": ""https://acme-leathercraft.example.com"",
        ""seller_privacy_policy"": ""https://acme-leathercraft.example.com/privacy"",
        ""seller_tos"": ""https://acme-leathercraft.example.com/terms""
      }
    }
  ]
}";
      InventoryIngestionRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(InventoryIngestionRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(InventoryIngestionRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/ingestions`

Submits a batch of up to 500 items, covering stock, product knowledge, or both, for
asynchronous processing, and returns `202 Accepted` with an ingestion job to poll. Processing is non-atomic: Good items apply even if some are rejected, and the per-item outcome is available at
`/inventory/ingestions/{id}/results`.

Ingestion sets the baseline stock and never overrides an active reservation, so it can never cause an oversell.

Include a Cko-Idempotency-Key header to make a retried submit safe: a repeat with the same key returns the original job instead of creating a duplicate batch.

Requires the `agentic:inventory` scope.

> Body parameter

```json
{
  "mode": "upsert",
  "items": [
    {
      "variant_id": "var_123",
      "stock": {
        "on_hand": 25,
        "safety_stock": 2,
        "reason": "stock take 2026-07"
      },
      "product": {
        "title": "Classic leather belt, brown",
        "description": "A full-grain leather belt with a brushed nickel buckle.",
        "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
        "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
        "additional_image_urls": [
          "https://merchant.example.com/images/belt-brown-alt1.jpg"
        ],
        "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
        "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
        "sku": "BELT-BRN-001",
        "gtin": "00012345678905",
        "mpn": "MPN-4471",
        "brand": "Acme Leathercraft",
        "category": "Apparel & Accessories > Belts",
        "price": {
          "amount": 1999,
          "currency": "USD"
        },
        "sale_price": {
          "amount": 1999,
          "currency": "USD"
        },
        "sale_price_starts_at": "2026-08-01T00:00:00Z",
        "sale_price_ends_at": "2026-08-31T23:59:59Z",
        "group_id": "grp_belt_classic",
        "group_title": "Classic leather belt",
        "color": "Brown",
        "size": "M",
        "size_system": "US",
        "gender": "unisex",
        "condition": "new",
        "material": "Full-grain leather",
        "age_group": "adult",
        "length": 110,
        "width": 3.5,
        "height": 0.5,
        "dimension_unit": "cm",
        "weight": 0.2,
        "weight_unit": "kg",
        "expiration_date": "2027-01-01T00:00:00Z",
        "harmonized_system_code": "4203.30",
        "country_of_origin": "IT",
        "seller_name": "Acme Leathercraft Ltd",
        "seller_url": "https://acme-leathercraft.example.com",
        "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
        "seller_tos": "https://acme-leathercraft.example.com/terms"
      }
    }
  ]
}
```

<h3 id="submit-a-batch-ingestion-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|body|body|[InventoryIngestionRequest](#schemainventoryingestionrequest)|true|none|

> Example responses

> 202 Response

```json
{
  "id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "state": "accepted",
  "mode": "upsert",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "failure_reason": {
    "code": "file_unreadable",
    "message": "The uploaded file could not be read as CSV."
  },
  "upload_url": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=...",
  "created_on": "2026-09-24T15:04:05Z",
  "modified_on": "2026-09-24T15:04:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "results": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "start": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="submit-a-batch-ingestion-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|The batch was accepted for processing, or the original job on an idempotent replay.|[InventoryIngestion](#schemainventoryingestion)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The `Cko-Idempotency-Key` was reused with a different request body (`idempotency_key_reuse`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|413|[Payload Too Large](https://tools.ietf.org/html/rfc7231#section-6.5.11)|The batch exceeds the maximum number of items (`payload_too_large`). Nothing is applied.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request validation failed.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded, or the merchant already has the maximum number of ingestion jobs in
flight (`too_many_concurrent_ingestions`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Get an ingestion job

<a id="opIdgetInventoryIngestion"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /inventory/ingestions/{id}`

Returns an ingestion job and its current state and counts. Poll this until `state` is either:
- `completed`
- `completed_with_errors`, or
- `failed`

Then read the per-item report at `/inventory/ingestions/{id}/results`.

Requires the `agentic:inventory` scope. A job owned by another merchant returns `404`.

<h3 id="get-an-ingestion-job-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ingestion identifier.|

> Example responses

> 200 Response

```json
{
  "id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "state": "accepted",
  "mode": "upsert",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "failure_reason": {
    "code": "file_unreadable",
    "message": "The uploaded file could not be read as CSV."
  },
  "upload_url": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=...",
  "created_on": "2026-09-24T15:04:05Z",
  "modified_on": "2026-09-24T15:04:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "results": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "start": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-an-ingestion-job-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The ingestion job.|[InventoryIngestion](#schemainventoryingestion)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Get an ingestion job's results

<a id="opIdgetInventoryIngestionResults"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/results";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /inventory/ingestions/{id}/results`

Returns the per-item results report for a terminal ingestion job. By default only the rejected
rows are listed, so you can fix and re-submit them; pass `include=all` to list every row.
Returns `409 results_not_ready` until the job is terminal.

Requires the `agentic:inventory` scope. A job owned by another merchant returns `404`.

<h3 id="get-an-ingestion-job's-results-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ingestion identifier.|
|include|query|string|false|Set to `all` to include accepted items as well as rejected ones. Defaults to rejected only.|

#### Enumerated Values

|Parameter|Value|
|---|---|
|include|all|

> Example responses

> 200 Response

```json
{
  "ingestion_id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "items": [
    {
      "index": 1,
      "variant_id": "var_123",
      "status": "rejected",
      "error_codes": [
        "on_hand_negative"
      ]
    }
  ]
}
```

<h3 id="get-an-ingestion-job's-results-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The per-item results report.|[InventoryIngestionResults](#schemainventoryingestionresults)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The job has not reached a terminal state yet (`results_not_ready`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Start processing an uploaded file

<a id="opIdstartInventoryIngestion"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/{id}/start";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/ingestions/{id}/start`

Begins processing a CSV file that was uploaded to the presigned `upload_url`. Validates and
parses the file, then queues it, moving the job out of `awaiting_upload`. Poll the job for
status and read the per-item report as for a JSON batch.

Requires the `agentic:inventory` scope.

<h3 id="start-processing-an-uploaded-file-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The ingestion identifier.|

> Example responses

> 202 Response

```json
{
  "id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "state": "accepted",
  "mode": "upsert",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "failure_reason": {
    "code": "file_unreadable",
    "message": "The uploaded file could not be read as CSV."
  },
  "upload_url": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=...",
  "created_on": "2026-09-24T15:04:05Z",
  "modified_on": "2026-09-24T15:04:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "results": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "start": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="start-processing-an-uploaded-file-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|The uploaded file was accepted and queued for processing.|[InventoryIngestion](#schemainventoryingestion)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The job is not awaiting an upload, or the file has not been uploaded yet
(`invalid_state`, `upload_not_found`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|413|[Payload Too Large](https://tools.ietf.org/html/rfc7231#section-6.5.11)|The uploaded file exceeds the size or row limit (`payload_too_large`). Nothing is applied.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The uploaded file could not be read (`invalid_file`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Create a CSV upload slot

<a id="opIdcreateInventoryIngestionUpload"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "mode": "upsert",
  "format": "csv"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/ingestions/uploads";
      
      string json = @"{
  ""mode"": ""upsert"",
  ""format"": ""csv""
}";
      InventoryIngestionUploadRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(InventoryIngestionUploadRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(InventoryIngestionUploadRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/ingestions/uploads`

Creates an upload slot for a CSV ingestion by generating a short-lived, `PUT`-only presigned
URL.
Returns `202 Accepted` with a job in the `awaiting_upload` state carrying an `upload_url` and a `start` link.

Upload the file directly to `upload_url` (it never transits the API), then call the `start` operation to begin processing.

Requires the `agentic:inventory` scope.

> Body parameter

```json
{
  "mode": "upsert",
  "format": "csv"
}
```

<h3 id="create-a-csv-upload-slot-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[InventoryIngestionUploadRequest](#schemainventoryingestionuploadrequest)|false|none|

> Example responses

> 202 Response

```json
{
  "id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "state": "accepted",
  "mode": "upsert",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "failure_reason": {
    "code": "file_unreadable",
    "message": "The uploaded file could not be read as CSV."
  },
  "upload_url": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=...",
  "created_on": "2026-09-24T15:04:05Z",
  "modified_on": "2026-09-24T15:04:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "results": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "start": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="create-a-csv-upload-slot-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|The upload slot was created. Upload the file to `upload_url`, then call `start`.|[InventoryIngestion](#schemainventoryingestion)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request validation failed.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded, or the merchant already has the maximum number of ingestion jobs in
flight (`too_many_concurrent_ingestions`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||The unique identifier of the request|
|202|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Create a reservation

<a id="opIdcreateInventoryReservation"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/reservations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/reservations HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: string

```

```javascript
const inputBody = '{
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "ttl_seconds": 900
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/reservations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/reservations',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/reservations', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => 'string',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/reservations', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/reservations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/reservations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/reservations";
      
      string json = @"{
  ""owner_type"": ""ucp_session"",
  ""owner_reference"": ""cs_8f42"",
  ""items"": [
    {
      ""variant_id"": ""var_123"",
      ""quantity"": 2
    }
  ],
  ""ttl_seconds"": 900
}";
      InventoryReservationRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(InventoryReservationRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(InventoryReservationRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/reservations`

Creates an atomic hold across multiple variants, with a time-to-live (TTL). All items in the hold are reserved together, or none are, so a reservation can never oversell.

The hold is protocol-neutral: it is bound to an `owner_type` and `owner_reference` supplied by the calling protocol adapter, for example a UCP session or an ACP checkout.

Requires the `agentic:inventory` scope.

> Body parameter

```json
{
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "ttl_seconds": 900
}
```

<h3 id="create-a-reservation-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|body|body|[InventoryReservationRequest](#schemainventoryreservationrequest)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "rsv_tkoi5db4hryu5cei5vwoabr7we",
  "state": "held",
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "expires_at": "2026-07-14T08:47:00Z",
  "created_on": "2026-07-14T08:32:00Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "commit": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "release": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="create-a-reservation-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Idempotent replay of an earlier reservation made with the same key.|[InventoryReservation](#schemainventoryreservation)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|The reservation was created and the stock is held.|[InventoryReservation](#schemainventoryreservation)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|One of the requested variants does not exist.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Not enough stock to hold one of the variants or the idempotency key was reused with a different request body.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request validation failed.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cache-Control|string||Present on an idempotent replay to indicate the response is the cached original reservation.|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Get a reservation

<a id="opIdgetInventoryReservation"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /inventory/reservations/{id}`

Returns a reservation in any state. A reservation with a `held` status past its `expires_at` is reported as `expired`.
The `_links` field returns the operations valid for the reservation's current state.

Requires the `agentic:inventory` scope. A reservation owned by another merchant returns `404`.

<h3 id="get-a-reservation-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The reservation identifier.|

> Example responses

> 200 Response

```json
{
  "id": "rsv_tkoi5db4hryu5cei5vwoabr7we",
  "state": "held",
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "expires_at": "2026-07-14T08:47:00Z",
  "created_on": "2026-07-14T08:32:00Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "commit": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "release": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-a-reservation-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The reservation.|[InventoryReservation](#schemainventoryreservation)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The reservation does not exist, or is owned by another merchant (`reservation_not_found`).|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Commit a reservation

<a id="opIdcommitInventoryReservation"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/commit";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/reservations/{id}/commit`

Converts a hold into a sale on order completion. In one atomic transaction, for each held item, `on_hand` (physical stock) and `reserved` are decremented.
The reservation moves to `committed`, and `commit` entries are written to the ledger.

The transaction is conditioned on the reservation still having a `held` status and not being past its `expires_at`, so a late commit can never land on an expired hold.

Requires the `agentic:inventory` scope.

<h3 id="commit-a-reservation-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The reservation identifier.|

> Example responses

> 200 Response

```json
{
  "id": "rsv_tkoi5db4hryu5cei5vwoabr7we",
  "state": "held",
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "expires_at": "2026-07-14T08:47:00Z",
  "created_on": "2026-07-14T08:32:00Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "commit": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "release": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="commit-a-reservation-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The reservation was committed (or is already committed).|[InventoryReservation](#schemainventoryreservation)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The reservation does not exist, or is owned by another merchant.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The reservation expired or was released. You must create a new reservation.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

## Release a reservation

<a id="opIdreleaseInventoryReservation"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/inventory/reservations/{id}/release";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /inventory/reservations/{id}/release`

Releases a hold when a checkout is cancelled or abandoned. In one atomic transaction, for each held item `reserved` is decremented and `available` is restored.
The reservation moves to `released`, and `release` entries are written to the ledger.

Requires the `agentic:inventory` scope.

<h3 id="release-a-reservation-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The reservation identifier.|

> Example responses

> 200 Response

```json
{
  "id": "rsv_tkoi5db4hryu5cei5vwoabr7we",
  "state": "held",
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "expires_at": "2026-07-14T08:47:00Z",
  "created_on": "2026-07-14T08:32:00Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "commit": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "release": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="release-a-reservation-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The reservation was released (or is already released, or had already expired — in which case
`state` reads `expired`).|[InventoryReservation](#schemainventoryreservation)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Missing or invalid token.|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The token does not carry the `agentic:inventory` scope.|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The reservation does not exist, or is owned by another merchant.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The reservation was already committed and cannot be released; use an adjustment to return stock for a completed sale.|[InventoryErrorResponse](#schemainventoryerrorresponse)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Rate limit exceeded.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: agentic:inventory )
</aside>

<h1 id="checkout-com-api-reference-onboarding">Onboarding</h1>

## Onboard an entity

<a id="opIdonboardEntity"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Accounts;
using Checkout.Common;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Accounts)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

OnboardEntityRequest request = new OnboardEntityRequest
{
    Reference = "reference",
    ContactDetails = new ContactDetails {Phone = new AccountPhone {Number = "2345678910"}},
    Profile =
        new Profile
        {
            Urls = new List<string> {"https://www.superheroexample.com"},
            Mccs = new List<string> {"5311"}
        },
    Individual = new Individual
    {
        FirstName = "FirstName",
        LastName = "LastName",
        TradingName = "John's Super Hero Masks",
        RegisteredAddress = new Address
        {
            AddressLine1 = "123 High St.",
            AddressLine2 = "Flat 456",
            City = "London",
            State = "GB",
            Zip = "SW1A 1AA",
            Country = CountryCode.GB
        },
        NationalTaxId = "TAX123456",
        DateOfBirth = new DateOfBirth {Day = 5, Month = 6, Year = 1995},
        Identification = new Identification {NationalIdNumber = "AB123456C"}
    }
};

try
{
    OnboardEntityResponse response = await api.AccountsClient().CreateEntity(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/accounts"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := accounts.OnboardEntityRequest{
	Reference: "reference",
	ContactDetails: &accounts.ContactDetails{
		Phone: &accounts.Phone{Number: "4155552671"},
	},
	Profile: &accounts.Profile{
		Urls: []string{"https://docs.checkout.com/1", "https://docs.checkout.com/2"},
		Mccs: []string{"0742"},
	},
	Individual: &accounts.Individual{
		FirstName:     "FirstName",
		MiddleName:    "",
		LastName:      "LastName",
		TradingName:   "TradingName",
		NationalTaxId: "TAX123456",
		RegisteredAddress: &common.Address{
			AddressLine1: "123 High St.",
			AddressLine2: "Flat 456",
			City:         "London",
			State:        "GB",
			Zip:          "SW1A 1AA",
			Country:      common.GB,
		},
		DateOfBirth: &accounts.DateOfBirth{
			Day:   5,
			Month: 6,
			Year:  1990,
		},
		Identification: &accounts.Identification{
			NationalIdNumber: "AB123456C",
			Document: &accounts.Document{
				Front: "number",
				Back:  "number",
			},
		},
	},
}

response, err := api.Accounts.CreateEntity(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.accounts.AccountPhone;
import com.checkout.accounts.ContactDetails;
import com.checkout.accounts.DateOfBirth;
import com.checkout.accounts.Document;
import com.checkout.accounts.DocumentType;
import com.checkout.accounts.Identification;
import com.checkout.accounts.Individual;
import com.checkout.accounts.OnboardEntityRequest;
import com.checkout.accounts.OnboardEntityResponse;
import com.checkout.accounts.Profile;
import com.checkout.common.Address;
import com.checkout.common.CountryCode;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.ACCOUNTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

OnboardEntityRequest onboardEntityRequest = OnboardEntityRequest.builder()
    .reference("reference")
    .contactDetails(ContactDetails.builder()
        .phone(AccountPhone.builder().number("2345678910").build())
        .build())
    .profile(Profile.builder()
        .urls(Arrays.asList("https://docs.checkout.com/1", "https://docs.checkout.com/2"))
        .mccs(Collections.singletonList("0742"))
        .build())
    .individual(Individual.builder()
        .firstName("FirstName")
        .lastName("LastName")
        .tradingName("TradingName")
        .registeredAddress(Address.builder()
            .addressLine1("123 High St.")
            .addressLine1("Flat 456")
            .city("London")
            .state("GB")
            .zip("SW1A 1AA")
            .country(CountryCode.GB)
            .build())
        .nationalTaxId("TAX123456")
        .dateOfBirth(DateOfBirth.builder()
            .day(5)
            .month(6)
            .year(1990)
            .build())
        .identification(Identification.builder()
            .nationalIdNumber("AB123456C")
            .document(Document.builder()
                .back("number")
                .front("number")
                .type(DocumentType.DRIVING_LICENSE)
                .build())
            .build())
        .build())
    .build();

try {
    OnboardEntityResponse response = api.accountsClient().createEntity(onboardEntityRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\Accounts\ContactDetails;
use Checkout\Accounts\DateOfBirth;
use Checkout\Accounts\Identification;
use Checkout\Accounts\Individual;
use Checkout\Accounts\OnboardEntityRequest;
use Checkout\Accounts\Profile;
use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Phone;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Accounts])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$dateOfBirth = new DateOfBirth();
$dateOfBirth->day = 5;
$dateOfBirth->month = 6;
$dateOfBirth->year = 1996;

$identification = new Identification();
$identification->national_id_number = "AB123456C";

$request = new OnboardEntityRequest();
$request->reference = uniqid();
$request->contact_details = new ContactDetails();
$request->contact_details->phone = $phone;
$request->profile = new Profile();
$request->profile->urls = array("https://www.superheroexample.com");
$request->profile->mccs = array("0742");
$request->individual = new Individual();
$request->individual->first_name = "Bruce";
$request->individual->last_name = "Wayne";
$request->individual->trading_name = "Batman's Super Hero Masks";
$request->individual->registered_address = $address;
$request->individual->national_tax_id = "TAX123456";
$request->individual->date_of_birth = $dateOfBirth;
$request->individual->identification = $identification;

try {
    $response = $api->getAccountsClient()->createEntity($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.accounts.accounts import OnboardEntityRequest, ContactDetails, Profile, Individual, DateOfBirth, Identification
from checkout_sdk.common.common import Phone, Address
from checkout_sdk.common.enums import Country
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth()
    .client_credentials('client_id', 'client_secret')
    .environment(Environment.sandbox()) # or Environment.production()
    .environment_subdomain("{prefix}") # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.ACCOUNTS])
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

request = OnboardEntityRequest()
request.reference = 'reference'
request.contact_details = ContactDetails()
request.contact_details.phone = phone
request.profile = Profile()
request.profile.urls = ['https://docs.checkout.com/url']
request.profile.mccs = ['0742']
request.individual = Individual()
request.individual.first_name = 'First'
request.individual.last_name = 'Last'
request.individual.trading_name = "Batman's Super Hero Masks"
request.individual.registered_address = address
request.individual.national_tax_id = 'TAX123456'
request.individual.date_of_birth = DateOfBirth()
request.individual.date_of_birth.day = 5
request.individual.date_of_birth.month = 6
request.individual.date_of_birth.year = 1996
request.individual.identification = Identification()
request.individual.identification.national_id_number = 'AB123456C'

try:
    response = api.accounts.create_entity(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /accounts/entities`

Onboard an entity so they can start using Checkout services.

> Body parameter

```json
{
  "reference": "isv-seller-example001",
  "agreed_terms": {
    "date": "2026-07-02T10:30:00Z",
    "ip_address": "8.8.8.8",
    "name": "Toby Arden",
    "email": "toby.arden@example.com",
    "version": "cko-platform-terms-1.0.0"
  },
  "seller_category": "cat_retail_001",
  "processing_details": {
    "annual_processing_volume": 1000,
    "average_transaction_value": 2000,
    "average_order_fulfillment_time": 3,
    "target_countries": [
      "US"
    ],
    "currency": "USD",
    "payments": {
      "ach": {
        "annual_ach_volume": 100000,
        "average_ach_transaction_size": 5000,
        "estimated_monthly_credit_volume": 50000,
        "average_credit_amount": 2500
      }
    }
  },
  "contact_details": {
    "phone": {
      "number": "4155678900",
      "country_code": "US"
    },
    "email_addresses": {
      "primary": "toby.arden@example.com",
      "pci_compliance_contact": "pci.contact@example.com"
    }
  },
  "profile": {
    "urls": [
      "https://www.isv-seller-example.com"
    ],
    "mccs": [
      "5551"
    ],
    "holding_currencies": [
      "USD"
    ],
    "default_holding_currency": "USD"
  },
  "company": {
    "business_registration_number": "12-3456789",
    "business_type": "private_corporation",
    "legal_name": "ISV Seller Example Inc",
    "trading_name": "ISV Seller Example",
    "registered_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "principal_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "date_of_incorporation": {
      "year": 2025,
      "month": 10,
      "day": 1
    },
    "representatives": [
      {
        "roles": [
          "ubo",
          "control_person"
        ],
        "ownership_percentage": 25,
        "company_position": "ceo",
        "individual": {
          "first_name": "Toby",
          "last_name": "Arden",
          "email_address": "toby.arden@example.com",
          "national_id_type": "ssn",
          "national_id_number": "123456789",
          "date_of_birth": {
            "day": 15,
            "month": 1,
            "year": 1990
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678901"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      },
      {
        "roles": [
          "authorised_signatory"
        ],
        "individual": {
          "first_name": "Alex",
          "last_name": "Morgan",
          "email_address": "alex.morgan@example.com",
          "national_id_type": "ssn",
          "national_id_number": "987654321",
          "date_of_birth": {
            "day": 22,
            "month": 6,
            "year": 1985
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678902"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      }
    ]
  }
}
```

<h3 id="onboard-an-entity-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|any|true|The entity to be onboarded. Use the relevant format for the platform type, region and payload version.|
|Accept|header|string|true|Used to describe the type of content the client can interpret.|

#### Detailed descriptions

**Accept**: Used to describe the type of content the client can interpret.
Use the schema_version value to specify the payload format. The latest version is 3.0.

> Example responses

> 201 Response

```json
{
  "id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "reference": "superhero1234",
  "requirements_due": [
    {
      "field": "individual.identification.document",
      "reason": "required",
      "message": "required"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  }
}
```

<h3 id="onboard-an-entity-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Entity onboarded successfully|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Entity onboarding request conflicted with an existing entity|[EntityLinks](#schemaentitylinks)|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="onboard-an-entity-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## Get entity details

<a id="opIdgetEntityDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Accounts;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Accounts)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    OnboardEntityDetailsResponse response = await api.AccountsClient().GetEntity("entity_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Accounts.GetEntity("entity_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.accounts.OnboardEntityDetailsResponse;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.ACCOUNTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    OnboardEntityDetailsResponse response = api.accountsClient().getEntity("entity_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Accounts])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getAccountsClient()->getEntity("entity_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.ACCOUNTS]) 
    .build()
)

try:
    response = api.accounts.get_entity('entity_id')
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /accounts/entities/{id}`

Use this endpoint to retrieve an entity and its full details.

<h3 id="get-entity-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Accept|header|string|true|Used to describe the type of content the client can interpret.|
|id|path|string|true|The ID of the entity.|

#### Detailed descriptions

**Accept**: Used to describe the type of content the client can interpret.
Use the schema_version value to specify the payload format. The latest version is 3.0.

> Example responses

> 200 Response

```json
{
  "reference": "string",
  "status": "string",
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "GBP"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "GI",
      "number": "strings"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringst",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "company_position": "ceo",
        "roles": [
          "ubo"
        ],
        "ownership_percentage": 25,
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          },
          "certified_authorised_signatory": {
            "type": "power_of_attorney",
            "front": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "GBP"
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "articles_of_association": {
      "type": "memorandum_of_association",
      "front": "stringstringstringstringstrings"
    },
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "shareholder_structure": {
      "type": "certified_shareholder_structure",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_legality": {
      "type": "proof_of_legality",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}
```

<h3 id="get-entity-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Entity retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="get-entity-details-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GI|
|country_code|CH|
|country_code|GG|
|country_code|IM|
|country_code|JE|
|country_code|GB|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|SX|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|director|
|Representative Role|control_person|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|scottish_limited_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|GBP|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|bank_statement|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GR|
|country_code|NL|
|country_code|BE|
|country_code|FR|
|country_code|ES|
|country_code|PT|
|country_code|LU|
|country_code|IE|
|country_code|IS|
|country_code|MT|
|country_code|CY|
|country_code|FI|
|country_code|BG|
|country_code|HU|
|country_code|LT|
|country_code|LV|
|country_code|EE|
|country_code|AD|
|country_code|HR|
|country_code|SI|
|country_code|IT|
|country_code|RO|
|country_code|CZ|
|country_code|SK|
|country_code|LI|
|country_code|AT|
|country_code|DK|
|country_code|SE|
|country_code|NO|
|country_code|PL|
|country_code|DE|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|Representative Role|ubo|
|Representative Role|legal_representative|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|EUR|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|bank_statement|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|
|Currency|USD|
|country_code|US|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|business_type|individual_or_sole_proprietorship|
|business_type|private_corporation|
|business_type|limited_liability_corporation|
|business_type|publicly_traded_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|government_agency|
|business_type|regulated_financial_institution|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|currency|USD|
|type|ein_letter|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|bank_statement|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|type|incorporation_document|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|Representative Role|ubo|
|Representative Role|legal_representative|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|currency|EUR|
|business_type|general_partnership|
|business_type|limited_partnership|
|business_type|public_limited_company|
|business_type|limited_company|
|business_type|professional_association|
|business_type|unincorporated_association|
|business_type|auto_entrepreneur|
|type|incorporation_document|
|type|bank_statement|
|type|financial_statement|
|Currency|USD|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|business_type|private_corporation|
|business_type|publicly_traded_corporation|
|business_type|government_agency|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_liability_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|business_type|regulated_financial_institution|
|currency|USD|
|type|incorporation_document|
|type|articles_of_association|
|type|ein_letter|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|type|incorporation_document|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|legal_representative|
|currency|EUR|
|business_type|general_partnership|
|business_type|limited_partnership|
|business_type|public_limited_company|
|business_type|limited_company|
|business_type|professional_association|
|business_type|unincorporated_association|
|business_type|auto_entrepreneur|
|type|incorporation_document|
|type|bank_statement|
|type|financial_statement|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|business_type|private_corporation|
|business_type|publicly_traded_corporation|
|business_type|government_agency|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_liability_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|business_type|regulated_financial_institution|
|currency|USD|
|type|incorporation_document|
|type|articles_of_association|
|type|ein_letter|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GI|
|country_code|CH|
|country_code|GG|
|country_code|IM|
|country_code|JE|
|country_code|GB|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|Representative Role|ubo|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|scottish_limited_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|GBP|
|type|bank_statement|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GR|
|country_code|NL|
|country_code|BE|
|country_code|FR|
|country_code|ES|
|country_code|PT|
|country_code|LU|
|country_code|IE|
|country_code|IS|
|country_code|MT|
|country_code|CY|
|country_code|FI|
|country_code|BG|
|country_code|HU|
|country_code|LT|
|country_code|LV|
|country_code|EE|
|country_code|AD|
|country_code|HR|
|country_code|SI|
|country_code|IT|
|country_code|RO|
|country_code|CZ|
|country_code|SK|
|country_code|LI|
|country_code|AT|
|country_code|DK|
|country_code|SE|
|country_code|NO|
|country_code|PL|
|country_code|DE|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|Representative Role|ubo|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|proof_of_address|
|type|extract_from_trade_register|
|type|other|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|EUR|
|type|bank_statement|
|Currency|USD|
|country_code|US|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|Representative Role|ubo|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|business_type|individual_or_sole_proprietorship|
|business_type|private_corporation|
|business_type|limited_liability_corporation|
|business_type|publicly_traded_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|government_agency|
|business_type|regulated_financial_institution|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|currency|USD|
|type|bank_statement|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Currency|USD|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|currency|USD|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|currency|USD|

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## Update entity details

<a id="opIdupdateEntityDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Accounts;
using Checkout.Common;

ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Accounts)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

OnboardEntityRequest request = new OnboardEntityRequest
{
    Reference = "reference",
    ContactDetails = new ContactDetails {Phone = new AccountPhone {Number = "2345678910"}},
    Profile =
        new Profile
        {
            Urls = new List<string> {"https://www.superheroexample.com"},
            Mccs = new List<string> {"5311"}
        },
    Individual = new Individual
    {
        FirstName = "FirstName",
        LastName = "LastName",
        TradingName = "John's Super Hero Masks",
        RegisteredAddress = new Address
        {
            AddressLine1 = "123 High St.",
            AddressLine2 = "Flat 456",
            City = "London",
            State = "GB",
            Zip = "SW1A 1AA",
            Country = CountryCode.GB
        },
        NationalTaxId = "TAX123456",
        DateOfBirth = new DateOfBirth {Day = 5, Month = 6, Year = 1995},
        Identification = new Identification {NationalIdNumber = "AB123456C"}
    }
};

try
{
    OnboardEntityResponse response = await api.AccountsClient().UpdateEntity("entity_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/accounts"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Accounts}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := accounts.OnboardEntityRequest{
	Reference: "reference",
	ContactDetails: &accounts.ContactDetails{
		Phone: &accounts.Phone{Number: "4155552671"},
	},
	Profile: &accounts.Profile{
		Urls: []string{"https://docs.checkout.com/1", "https://docs.checkout.com/2"},
		Mccs: []string{"0742"},
	},
	Individual: &accounts.Individual{
		FirstName:     "FirstName",
		MiddleName:    "",
		LastName:      "LastName",
		TradingName:   "TradingName",
		NationalTaxId: "TAX123456",
		RegisteredAddress: &common.Address{
			AddressLine1: "123 High St.",
			AddressLine2: "Flat 456",
			City:         "London",
			State:        "GB",
			Zip:          "SW1A 1AA",
			Country:      common.GB,
		},
		DateOfBirth: &accounts.DateOfBirth{
			Day:   5,
			Month: 6,
			Year:  1990,
		},
		Identification: &accounts.Identification{
			NationalIdNumber: "AB123456C",
			Document: &accounts.Document{
				Front: "number",
				Back:  "number",
			},
		},
	},
}

response, err := api.Accounts.UpdateEntity("entity_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.accounts.AccountPhone;
import com.checkout.accounts.ContactDetails;
import com.checkout.accounts.DateOfBirth;
import com.checkout.accounts.Document;
import com.checkout.accounts.DocumentType;
import com.checkout.accounts.Identification;
import com.checkout.accounts.Individual;
import com.checkout.accounts.OnboardEntityRequest;
import com.checkout.accounts.OnboardEntityResponse;
import com.checkout.accounts.Profile;
import com.checkout.common.Address;
import com.checkout.common.CountryCode;

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.ACCOUNTS) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

OnboardEntityRequest request = OnboardEntityRequest.builder()
    .reference("reference")
    .contactDetails(ContactDetails.builder()
    .phone(AccountPhone.builder().number("415 555 2671").build())
    .build())
    .profile(Profile.builder()
        .urls(Collections.singletonList("https://docs.checkout.com"))
        .mccs(Collections.singletonList("0742"))
        .build())
    .individual(Individual.builder()
        .firstName("FirstName")
        .lastName("LastName")
        .tradingName("Trading")
        .registeredAddress(Address.builder()
            .addressLine1("123 High St.")
            .addressLine1("Flat 456")
            .city("London")
            .state("GB")
            .zip("SW1A 1AA")
            .country(CountryCode.GB)
            .build())
        .nationalTaxId("TAX123456")
        .dateOfBirth(DateOfBirth.builder()
            .day(5)
            .month(6)
            .year(1995)
            .build())
        .identification(Identification.builder()
            .nationalIdNumber("AB123456C")
            .document(Document.builder()
                .back("number")
                .front("number")
                .type(DocumentType.PASSPORT)
                .build())
            .build())
        .build())
    .build();

try {
    OnboardEntityResponse response = api.accountsClient().updateEntity(request, "entity_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\Accounts\ContactDetails;
use Checkout\Accounts\DateOfBirth;
use Checkout\Accounts\Identification;
use Checkout\Accounts\Individual;
use Checkout\Accounts\OnboardEntityRequest;
use Checkout\Accounts\Profile;
use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Address;
use Checkout\Common\Country;
use Checkout\Common\Phone;
use Checkout\Environment;
use Checkout\OAuthScope;

$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Accounts])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$address = new Address();
$address->address_line1 = "123 High St.";
$address->address_line2 = "Flat 456";
$address->city = "London";
$address->State = "GB";
$address->zip = "SW1A 1AA";
$address->country = Country::$GB;

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$dateOfBirth = new DateOfBirth();
$dateOfBirth->day = 5;
$dateOfBirth->month = 6;
$dateOfBirth->year = 1996;

$identification = new Identification();
$identification->national_id_number = "AB123456C";

$request = new OnboardEntityRequest();
$request->reference = uniqid();
$request->contact_details = new ContactDetails();
$request->contact_details->phone = $phone;
$request->profile = new Profile();
$request->profile->urls = array("https://www.superheroexample.com");
$request->profile->mccs = array("0742");
$request->individual = new Individual();
$request->individual->first_name = "Bruce";
$request->individual->last_name = "Wayne";
$request->individual->trading_name = "Batman's Super Hero Masks";
$request->individual->registered_address = $address;
$request->individual->national_tax_id = "TAX123456";
$request->individual->date_of_birth = $dateOfBirth;
$request->individual->identification = $identification;

try {
    $response = $api->getAccountsClient()->updateEntity($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.accounts.accounts import OnboardEntityRequest, ContactDetails, Profile, Individual, DateOfBirth, Identification
from checkout_sdk.common.common import Phone, Address
from checkout_sdk.common.enums import Country
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.ACCOUNTS]) 
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

address = Address()
address.address_line1 = '123 High St.'
address.address_line2 = 'Flat 456'
address.city = 'London'
address.state = 'GB'
address.zip = 'SW1A 1AA'
address.country = Country.GB

request = OnboardEntityRequest()
request.reference = 'reference'
request.contact_details = ContactDetails()
request.contact_details.phone = phone
request.profile = Profile()
request.profile.urls = ['https://docs.checkout.com/url']
request.profile.mccs = ['0742']
request.individual = Individual()
request.individual.first_name = 'First'
request.individual.last_name = 'Last'
request.individual.trading_name = "Batman's Super Hero Masks"
request.individual.registered_address = address
request.individual.national_tax_id = 'TAX123456'
request.individual.date_of_birth = DateOfBirth()
request.individual.date_of_birth.day = 5
request.individual.date_of_birth.month = 6
request.individual.date_of_birth.year = 1996
request.individual.identification = Identification()
request.individual.identification.national_id_number = 'AB123456C'

try:
    response = api.accounts.update_entity("entity_id", request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PUT /accounts/entities/{id}`

Update an entity.

**Note:** when you update a entity we may conduct further due diligence checks when necessary. During these checks, your payment capabilities will remain the same.

> Body parameter

```json
{
  "reference": "isv-seller-example001",
  "agreed_terms": {
    "date": "2026-07-02T10:30:00Z",
    "ip_address": "8.8.8.8",
    "name": "Toby Arden",
    "email": "toby.arden@example.com",
    "version": "cko-platform-terms-1.0.0"
  },
  "seller_category": "cat_retail_001",
  "processing_details": {
    "annual_processing_volume": 1000,
    "average_transaction_value": 2000,
    "average_order_fulfillment_time": 3,
    "target_countries": [
      "US"
    ],
    "currency": "USD",
    "payments": {
      "ach": {
        "annual_ach_volume": 100000,
        "average_ach_transaction_size": 5000,
        "estimated_monthly_credit_volume": 50000,
        "average_credit_amount": 2500
      }
    }
  },
  "contact_details": {
    "phone": {
      "number": "4155678900",
      "country_code": "US"
    },
    "email_addresses": {
      "primary": "toby.arden@example.com",
      "pci_compliance_contact": "pci.contact@example.com"
    }
  },
  "profile": {
    "urls": [
      "https://www.isv-seller-example.com"
    ],
    "mccs": [
      "5551"
    ],
    "holding_currencies": [
      "USD"
    ],
    "default_holding_currency": "USD"
  },
  "company": {
    "business_registration_number": "12-3456789",
    "business_type": "private_corporation",
    "legal_name": "ISV Seller Example Inc",
    "trading_name": "ISV Seller Example",
    "registered_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "principal_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "date_of_incorporation": {
      "year": 2025,
      "month": 10,
      "day": 1
    },
    "representatives": [
      {
        "roles": [
          "ubo",
          "control_person"
        ],
        "ownership_percentage": 25,
        "company_position": "ceo",
        "individual": {
          "first_name": "Toby",
          "last_name": "Arden",
          "email_address": "toby.arden@example.com",
          "national_id_type": "ssn",
          "national_id_number": "123456789",
          "date_of_birth": {
            "day": 15,
            "month": 1,
            "year": 1990
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678901"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      },
      {
        "roles": [
          "authorised_signatory"
        ],
        "individual": {
          "first_name": "Alex",
          "last_name": "Morgan",
          "email_address": "alex.morgan@example.com",
          "national_id_type": "ssn",
          "national_id_number": "987654321",
          "date_of_birth": {
            "day": 22,
            "month": 6,
            "year": 1985
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678902"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      }
    ]
  }
}
```

<h3 id="update-entity-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|any|true|The entity to be updated. Use the relevant format for the platform type, region and payload version.|
|Accept|header|string|true|Used to describe the type of content the client can interpret.|
|id|path|string|true|The ID of the entity.|

#### Detailed descriptions

**Accept**: Used to describe the type of content the client can interpret.
Use the schema_version value to specify the payload format. The latest version is 3.0.

> Example responses

> 200 Response

```json
{
  "id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "reference": "superhero1234",
  "requirements_due": [
    {
      "field": "individual.identification.document",
      "reason": "required",
      "message": "required"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  }
}
```

<h3 id="update-entity-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Entity updated successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Entity not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="update-entity-details-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts )
</aside>

## Get a list of requirements

<a id="opIdlistEntityRequirements"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements \
  -H 'Accept: application/json' \
  -H 'Accept: application/json;schema_version=3.0' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements HTTP/1.1

Accept: application/json
Accept: application/json;schema_version=3.0

```

```javascript

const headers = {
  'Accept':'application/json',
  'Accept':'application/json;schema_version=3.0',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Accept' => 'application/json;schema_version=3.0',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Accept': 'application/json;schema_version=3.0',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Accept' => 'application/json;schema_version=3.0',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Accept": []string{"application/json;schema_version=3.0"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /accounts/entities/{id}/requirements`

Retrieve the list of pending requirements that the sub-entity must resolve. Requirements may be raised as part of onboarding, periodic AML reviews, or ongoing compliance checks. Each item in the response includes a `priority` and `deadline` to help you surface the most urgent items first.

<h3 id="get-a-list-of-requirements-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Accept|header|string|true|Used to describe the type of content the client can interpret.|
|id|path|string|true|The sub-entity's ID.|

#### Detailed descriptions

**Accept**: Used to describe the type of content the client can interpret.
Use the schema_version value to specify the payload format. The latest version is 3.0.

> Example responses

> 200 Response

```json
{
  "data": [
    {
      "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
      "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
      "resource_type": "company",
      "reason": "periodic_review",
      "priority": "critical",
      "deadline": "2026-05-10T00:00:00Z",
      "urn": "urn:object:company#ent_wxglze3wwywujg4nna5fb7ldli#field:legal-name",
      "field_path": "company.legal_name",
      "field_urn": "urn:field:companies/legal-name",
      "metadata": {
        "purpose": "company_verification"
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
        }
      }
    }
  ]
}
```

<h3 id="get-a-list-of-requirements-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Requirements retrieved successfully|[EntityRequirementListResponse](#schemaentityrequirementlistresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Sub-entity not found|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Get requirement details

<a id="opIdgetEntityRequirement"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /accounts/entities/{id}/requirements/{requirementId}`

Retrieve detailed information for a single requirement, including the JSON Schema that defines the shape of the value expected when resolving it.

Once a response has been submitted for a requirement (see `PUT /accounts/entities/{id}/requirements/{requirementId}`), that requirement is no longer retrievable via this endpoint until it is re-issued or cleared.

<h3 id="get-requirement-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The sub-entity's ID.|
|requirementId|path|string|true|The requirement's ID, as returned by `GET /accounts/entities/{id}/requirements`.|

> Example responses

> 200 Response

```json
{
  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
  "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
  "resource_type": "company",
  "reason": "periodic_review",
  "priority": "high",
  "deadline": "2026-06-01T00:00:00Z",
  "urn": "urn:object:company#ent_wxglze3wwywujg4nna5fb7ldli#field:legal-name",
  "field_path": "company.legal_name",
  "field_urn": "urn:field:companies/legal-name",
  "metadata": {
    "purpose": "company_verification"
  },
  "message": "Please confirm your legal company name.",
  "_schema": {
    "type": "string",
    "minLength": 1,
    "maxLength": 200
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
    },
    "collection": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements"
    },
    "schema": {
      "href": "https://{prefix}.api.checkout.com/accounts/requirements/urn%3Aobject%3Acompany%23ent_wxglze3wwywujg4nna5fb7ldli%23field%3Alegal-name"
    }
  }
}
```

<h3 id="get-requirement-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Requirement details retrieved successfully|[EntityRequirementDetails](#schemaentityrequirementdetails)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Requirement not found, or a response has already been submitted for it.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Resolve a requirement

<a id="opIdresolveEntityRequirement"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "value": {
    "file_id": "file_6lbss42ezvoufcb2beo76rvwly"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/requirements/{requirementId}";

      
      string json = @"{
  ""value"": {
    ""file_id"": ""file_6lbss42ezvoufcb2beo76rvwly""
  }
}";
      EntityRequirementUpdateRequest content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);
      
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, EntityRequirementUpdateRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(EntityRequirementUpdateRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /accounts/entities/{id}/requirements/{requirementId}`

Submit a response to resolve a requirement. The shape of `value` is defined by the requirement's `_schema`, returned from `GET /accounts/entities/{id}/requirements/{requirementId}`.

The response is accepted for processing and applied asynchronously. While processing, the requirement is no longer retrievable via the GET endpoints; if validation fails downstream the requirement may reappear.

> Body parameter

```json
{
  "value": {
    "file_id": "file_6lbss42ezvoufcb2beo76rvwly"
  }
}
```

<h3 id="resolve-a-requirement-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[EntityRequirementUpdateRequest](#schemaentityrequirementupdaterequest)|true|none|
|id|path|string|true|The sub-entity's ID.|
|requirementId|path|string|true|The requirement's ID, as returned by `GET /accounts/entities/{id}/requirements`.|

> Example responses

> 202 Response

```json
{
  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
  "status": "processing",
  "submitted_at": "2026-05-05T10:15:30Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
    },
    "collection": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements"
    }
  }
}
```

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="resolve-a-requirement-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Response accepted for processing|[EntityRequirementUpdateResponse](#schemaentityrequirementupdateresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The request body could not be parsed.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Requirement not found, or a response has already been submitted for it.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The supplied `value` did not validate against the requirement's `_schema`.|[ValidationError](#schemavalidationerror)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Version|string||The version of the API|
|202|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-platforms">platforms</h1>

## Get reserve rule details

<a id="opIdgetReserveRule"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /accounts/entities/{entityId}/reserve-rules/{id}`

Retrieve the details of a specific reserve rule.

<h3 id="get-reserve-rule-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|entityId|path|string|true|The sub-entity's ID.|
|id|path|string|true|The reserve rule ID.|

> Example responses

> Reserve rule details.

```json
{
  "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
  "type": "rolling",
  "valid_from": "2001-01-01T13:33:00.000Z",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  }
}
```

<h3 id="get-reserve-rule-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Reserve rule details.|[ReserveRuleReadResponse](#schemareserverulereadresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|ETag|string||Identifies the current version of the reserve rule.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Update reserve rule

<a id="opIdupdateReserveRule"></a>

> Code samples

```shell
# You can also use wget
curl -X PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'If-Match: Y3Y9MCZydj0w' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PUT https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id} HTTP/1.1

Content-Type: application/json
Accept: application/json
If-Match: Y3Y9MCZydj0w

```

```javascript
const inputBody = '{
  "type": "rolling",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'If-Match':'Y3Y9MCZydj0w',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'If-Match' => 'Y3Y9MCZydj0w',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'If-Match': 'Y3Y9MCZydj0w',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'If-Match' => 'Y3Y9MCZydj0w',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "If-Match": []string{"Y3Y9MCZydj0w"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    /// Make a dummy request
    public async Task MakePutRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{entityId}/reserve-rules/{id}";

      
      string json = @"{
  ""type"": ""rolling"",
  ""rolling"": {
    ""percentage"": 10,
    ""holding_duration"": {
      ""weeks"": 2
    }
  }
}";
      ReserveRuleUpdateRequest content = JsonConvert.DeserializeObject(json);
      var result = await PutAsync(id, content, url);
      
          
    }

    /// Performs a PUT Request
    public async Task PutAsync(int id, ReserveRuleUpdateRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute PUT request
        HttpResponseMessage response = await Client.PutAsync(url + $"/{id}", jsonContent);

        //Return response
        return await DeserializeObject(response);
    }
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(ReserveRuleUpdateRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PUT /accounts/entities/{entityId}/reserve-rules/{id}`

Update an upcoming reserve rule. Only reserve rules that have never been active can be updated.

> Body parameter

```json
{
  "type": "rolling",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  }
}
```

<h3 id="update-reserve-rule-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|If-Match|header|string|true|Identifies a specific version of a reserve rule to update.|
|body|body|[ReserveRuleUpdateRequest](#schemareserveruleupdaterequest)|true|none|
|entityId|path|string|true|The sub-entity's ID.|
|id|path|string|true|The reserve rule ID.|

> Example responses

> 200 Response

```json
{
  "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
  "_links": {
    "self": {
      "href": "string"
    }
  }
}
```

<h3 id="update-reserve-rule-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Reserve rule updated successfully.|[ReserveRuleWriteResponse](#schemareserverulewriteresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|412|[Precondition Failed](https://tools.ietf.org/html/rfc7232#section-4.2)|Precondition failed. An invalid ETag value was provided in the If-Match header.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable entity|[ValidationError](#schemavalidationerror)|
|428|[Precondition Required](https://tools.ietf.org/html/rfc6585#section-3)|Precondition required. The If-Match header is required.|[PreconditionRequiredError](#schemapreconditionrequirederror)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|
|200|ETag|string||Identifies a specific version of a reserve rule.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Add a reserve rule

<a id="opIdaddReserveRule"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "type": "rolling",
  "valid_from": "2001-01-01T13:33:00.000Z",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules";
      
      string json = @"{
  ""type"": ""rolling"",
  ""valid_from"": ""2001-01-01T13:33:00.000Z"",
  ""rolling"": {
    ""percentage"": 10,
    ""holding_duration"": {
      ""weeks"": 2
    }
  }
}";
      ReserveRuleCreateRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(ReserveRuleCreateRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(ReserveRuleCreateRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /accounts/entities/{id}/reserve-rules`

Create a sub-entity reserve rule.

> Body parameter

```json
{
  "type": "rolling",
  "valid_from": "2001-01-01T13:33:00.000Z",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  }
}
```

<h3 id="add-a-reserve-rule-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[ReserveRuleCreateRequest](#schemareserverulecreaterequest)|true|A JSON payload containing the reserve rule details.|
|id|path|string|true|The sub-entity's ID.|

> Example responses

> 201 Response

```json
{
  "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
  "_links": {
    "self": {
      "href": "string"
    }
  }
}
```

<h3 id="add-a-reserve-rule-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Created|[ReserveRuleWriteResponse](#schemareserverulewriteresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|Inline|

<h3 id="add-a-reserve-rule-responseschema">Response Schema</h3>

Status Code **422**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|201|Cko-Version|string||The version of the API|
|201|Cko-Request-Id|string||The unique identifier of the request|
|201|ETag|string||Identifies a specific version of a reserve rule.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

## Query reserve rules

<a id="opIdqueryReserveRules"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/accounts/entities/{id}/reserve-rules";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /accounts/entities/{id}/reserve-rules`

Fetch all of the reserve rules for a sub-entity.

<h3 id="query-reserve-rules-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The sub-entity's ID.|

> Example responses

> OK

```json
{
  "data": [
    {
      "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
      "type": "rolling",
      "valid_from": "2001-01-01T13:33:00.000Z",
      "rolling": {
        "percentage": 10,
        "holding_duration": {
          "weeks": 2
        }
      }
    },
    {
      "id": "rsv_yk7nmh5jypmqzw5kb6kshj2iiy",
      "type": "rolling",
      "valid_from": "2001-02-01T13:33:00.000Z",
      "rolling": {
        "percentage": 15,
        "holding_duration": {
          "weeks": 4
        }
      }
    }
  ]
}
```

<h3 id="query-reserve-rules-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|[ReserveRuleQueryResponse](#schemareserverulequeryresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||The version of the API|
|200|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: accounts ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-aml-screening">AML Screening</h1>

## Create an AML screening

<a id="opIdcreate_aml_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/aml-verifications \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/aml-verifications HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "search_parameters": {
    "configuration_identifier": "011e5c14-2222-738c-8852-dfdbbe53f233"
  },
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/aml-verifications',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/aml-verifications',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/aml-verifications', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/aml-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/aml-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/aml-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/aml-verifications";
      
      string json = @"{
  ""search_parameters"": {
    ""configuration_identifier"": ""011e5c14-2222-738c-8852-dfdbbe53f233""
  },
  ""applicant_id"": ""aplt_tkoi5db4hryu5cei5vwoabr7we""
}";
      AmlVerification content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(AmlVerification content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(AmlVerification content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /aml-verifications`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
 Create an [AML screening](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases).

If the request is successful, you receive a `201 Created` response with the AML screening resource.

> Body parameter

```json
{
  "search_parameters": {
    "configuration_identifier": "011e5c14-2222-738c-8852-dfdbbe53f233"
  },
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we"
}
```

<h3 id="create-an-aml-screening-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[AmlVerification](#schemaamlverification)|true|none|

> Example responses

> AML screening created successfully

```json
{
  "id": "amlv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "created",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "search_parameters": {
    "configuration_identifier": "8eb79430-c014-41e5-be73-2c2c091322b8"
  },
  "monitored": false,
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/aml-verifications/amlv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7AE"
    }
  }
}
```

<h3 id="create-an-aml-screening-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|AML screening created successfully|Inline|

<h3 id="create-an-aml-screening-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[AmlVerificationId](#schemaamlverificationid)|false|read-only|The AML screening's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an AML screening

<a id="opIdretrieve_aml_screening"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/aml-verifications/{aml_verification_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /aml-verifications/{aml_verification_id}`

Get the detailed result of an [AML screening](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases).

<h3 id="get-an-aml-screening-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|aml_verification_id|path|[AmlVerificationId](#schemaamlverificationid)|true|The AML screening's unique identifier.|

> Example responses

> AML screening retrieved successfully

```json
{
  "id": "amlv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "created",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "search_parameters": {
    "configuration_identifier": "8eb79430-c014-41e5-be73-2c2c091322b8"
  },
  "monitored": false,
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/aml-verifications/amlv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7AE"
    }
  }
}
```

<h3 id="get-an-aml-screening-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|AML screening retrieved successfully|Inline|

<h3 id="get-an-aml-screening-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[AmlVerificationId](#schemaamlverificationid)|false|read-only|The AML screening's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-compliance-requests">Compliance requests</h1>

## Get a compliance request

<a id="opIdComplianceRequests_GetComplianceRequest"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /compliance-requests/{payment_id}`

Retrieve an existing <a href="https://www.checkout.com/docs/business-operations/respond-to-compliance-requests">compliance request</a> by payment ID.

<h3 id="get-a-compliance-request-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|payment_id|path|string|true|The compliance request's payment ID.|

> Example responses

> 200 Response

```json
{
  "payment_id": "pay_fun26akvvjjerahhctaq2uzhu4",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
  "segment_id": "seg_siopnqocrc4ehgyer4tpepq5pp",
  "amount": "38.23",
  "currency": "HKD",
  "recipient_name": "Jia Tsang",
  "requested_on": "2026-02-04T15:46:44.9663151Z",
  "status": "responded",
  "fields": {
    "sender": [
      {
        "name": "date_of_birth",
        "type": "date",
        "value": "2000-01-01"
      }
    ],
    "recipient": [
      {
        "name": "date_of_birth",
        "type": "date",
        "value": "2000-01-01"
      }
    ]
  },
  "transaction_reference": "ref-abc",
  "sender_reference": "ref-def",
  "last_updated": "2026-02-04T15:47:18.6326970Z",
  "sender_name": "Ali Farid",
  "payment_type": "PayToCard"
}
```

<h3 id="get-a-compliance-request-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Compliance request retrieved successfully.|[ComplianceRequestDetails](#schemacompliancerequestdetails)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Compliance request could not be retrieved. See the response body for more information.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized request|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Compliance request not found|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Version|string||Version of the API that handled the request.|
|200|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|400|Cko-Version|string||Version of the API that handled the request.|
|400|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|401|Cko-Version|string||Version of the API that handled the request.|
|401|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|403|Cko-Version|string||Version of the API that handled the request.|
|403|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|404|Cko-Version|string||Version of the API that handled the request.|
|404|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: compliance-requests compliance-requests:read ), ApiSecretKey
</aside>

## Respond to a compliance request

<a id="opIdComplianceRequests_SubmitComplianceRequestResponse"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id} \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id} HTTP/1.1

Content-Type: application/json

```

```javascript
const inputBody = '{
  "fields": {
    "sender": [
      {
        "name": "date_of_birth",
        "value": null,
        "not_available": false
      }
    ],
    "recipient": [
      {
        "name": "date_of_birth",
        "value": null,
        "not_available": false
      }
    ]
  },
  "comments": "Optional comment"
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/compliance-requests/{payment_id}";
      
      string json = @"{
  ""fields"": {
    ""sender"": [
      {
        ""name"": ""date_of_birth"",
        ""value"": null,
        ""not_available"": false
      }
    ],
    ""recipient"": [
      {
        ""name"": ""date_of_birth"",
        ""value"": null,
        ""not_available"": false
      }
    ]
  },
  ""comments"": ""Optional comment""
}";
      ComplianceRequestResponse content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(ComplianceRequestResponse content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(ComplianceRequestResponse content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /compliance-requests/{payment_id}`

Submit a response to a <a href="https://www.checkout.com/docs/business-operations/respond-to-compliance-requests">compliance request</a>.

> Body parameter

```json
{
  "fields": {
    "sender": [
      {
        "name": "date_of_birth",
        "value": null,
        "not_available": false
      }
    ],
    "recipient": [
      {
        "name": "date_of_birth",
        "value": null,
        "not_available": false
      }
    ]
  },
  "comments": "Optional comment"
}
```

<h3 id="respond-to-a-compliance-request-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|payment_id|path|string|true|The compliance request's payment ID.|
|body|body|[ComplianceRequestResponse](#schemacompliancerequestresponse)|false|The response details.|

<h3 id="respond-to-a-compliance-request-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Response to compliance request accepted|None|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Response to compliance request could not be submitted. See the response body for more information.|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized request|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Compliance request not found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The compliance request has already been responded to.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Version|string||Version of the API that handled the request.|
|202|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|400|Cko-Version|string||Version of the API that handled the request.|
|400|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|401|Cko-Version|string||Version of the API that handled the request.|
|401|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|403|Cko-Version|string||Version of the API that handled the request.|
|403|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|404|Cko-Version|string||Version of the API that handled the request.|
|404|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|
|409|Cko-Version|string||Version of the API that handled the request.|
|409|Cko-Request-Id|string||Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: compliance-requests compliance-requests:respond ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-customers">Customers</h1>

## Create a customer

<a id="opIdcreateCustomer"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using CustomerRequest = Checkout.Customers.CustomerRequest;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CustomerRequest request = new CustomerRequest
{
    Email = "email@docs.checkout.com",
    Name = "FirstName LastName",
    Phone = new Phone {CountryCode = "1", Number = "4155552671"},
    Metadata = new Dictionary<string, object>() {{"coupon_code", "NY2018"}, {"partner_id", "123989"}}
};

try
{
    IdResponse response = await api.CustomersClient().Create(request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/customers"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Vault}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := customers.CustomerRequest{
	Email: "email@docs.checkout.com",
	Name:  "Name",
	Phone: &common.Phone{
		CountryCode: "44",
		Number:      "4155552671",
	},
}

response, err := api.Customers.Create(request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.IdResponse;
import com.checkout.common.Phone;
import com.checkout.customers.CustomerRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

CustomerRequest request = CustomerRequest.builder()
    .email("email@docs.checkout.com")
    .name("name")
    .phone(Phone.builder().countryCode("1").number("415 555 2671").build())
    .instruments(Arrays.asList("instrument_id_1", "instrument_id_2"))
    .metadata(new HashMap<>())
    .build();

try {
    IdResponse response = api.customersClient().create(request).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const customerResponse = await cko.customers.create({
		email: 'JohnTest@test.com',
		name: 'John Test',
		phone: {
			country_code: '+1',
			number: '4155552671',
		},
		metadata: {
			coupon_code: 'NY2018',
			partner_id: 123989,
		},
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Phone;
use Checkout\Customers\CustomerRequest;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$request = new CustomerRequest();
$request->email = "email@docs.checkout.com";
$request->name = "name";
$request->phone = $phone;
$request->instruments = ["instrument_id_1", "instrument_id_2"];

try {
    $response = $api->getCustomersClient()->create($request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone
from checkout_sdk.customers.customers import CustomerRequest
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder()
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

request = CustomerRequest()
request.email = 'email@docs.checkout.com'
request.name = 'Name'
request.phone = phone
request.instruments = ['instrument_id_1', 'instrument_id_2']

try:
    response = api.customers.create(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`POST /customers`

<a href="https://www.checkout.com/docs/payments/store-and-manage-credentials" target="_blank">Store a customer's details in a customer object to reuse in future payments</a>. When creating a customer, you can link payment instruments – the customer `id` returned can be passed as a source when making a payment. <br/><br> **NOTE:** Specify a `default` instrument, otherwise the `instruments` array will not be saved on creation.

> Body parameter

```json
{
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "default": "src_wmlfc3zyhqzehihu7giusaaawu"
}
```

<h3 id="create-a-customer-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[StoreCustomerRequest](#schemastorecustomerrequest)|true|none|

> Example responses

> 201 Response

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
}
```

<h3 id="create-a-customer-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Customer created successfully|[StoreCustomerResponse](#schemastorecustomerresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A concurrent update conflict occurred. Retry the request.|Inline|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<h3 id="create-a-customer-responseschema">Response Schema</h3>

Status Code **409**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:customers ), ApiSecretKey
</aside>

## Get customer details

<a id="opIdgetCustomerDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Customers;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    CustomerDetailsResponse response = await api.CustomersClient().Get("customer_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Vault}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Customers.Get("customer_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.customers.CustomerResponse;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    CustomerResponse response = api.customersClient().get("customer_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const customerResponse = await cko.customers.get('cus_2tvaccfvs3lulevzg42vgyvtdq');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getCustomersClient()->get("customer_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder()
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

try:
    response = api.customers.get("customer_id")
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`GET /customers/{identifier}`

Returns the details of a customer and their payment instruments.

<h3 id="get-customer-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identifier|path|string|true|The customer's ID or email|

> Example responses

> Customer retrieved successfully

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "instruments": [
    {
      "type": "bank_account",
      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
      "account_number": "13654567455",
      "bank_code": "123-456",
      "currency": "GBP",
      "country": "GB"
    }
  ]
}
```

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "instruments": [
    {
      "type": "card",
      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
      "expiry_month": 6,
      "expiry_year": 2025,
      "scheme": "VISA",
      "last4": "9996",
      "bin": "454347",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer": "TEST STATE BANK"
    }
  ]
}
```

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "instruments": [
    {
      "type": "ach",
      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
      "created_on": "2021-01-01T00:00:00Z",
      "modified_on": "2021-01-01T00:00:00Z",
      "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
      "instrument_data": {
        "account_type": "savings",
        "account_number": "4099999992",
        "bank_code": "211370545",
        "currency": "USD",
        "country": "US"
      },
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith",
        "company_name": "Smith Enterprises",
        "type": "individual"
      }
    }
  ]
}
```

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "instruments": [
    {
      "type": "sepa",
      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
      "created_on": "2021-01-01T00:00:00Z",
      "modified_on": "2021-01-01T00:00:00Z",
      "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
      "instrument_data": {
        "account_number": "FR2810096000509685512959O86",
        "country": "GB",
        "currency": "GBP",
        "payment_type": "recurring",
        "mandate_id": "1234567890",
        "date_of_signature": "2021-01-01"
      },
      "account_holder": {
        "first_name": "Hannah",
        "last_name": "Bret",
        "billing_address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "zip": "SW1A 1AA",
          "country": "GB"
        }
      }
    }
  ]
}
```

<h3 id="get-customer-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Customer retrieved successfully|[RetrieveCustomerResponse](#schemaretrievecustomerresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Customer not found|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|200|Cko-Version|string||The version of the API|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:customers ), ApiSecretKey
</aside>

## Update customer details

<a id="opIdupdateCustomerDetails"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net
using Checkout.Common;
using CustomerRequest = Checkout.Customers.CustomerRequest;

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

CustomerRequest request = new CustomerRequest
{
    Email = "email@docs.checkout.com",
    Name = "FirstName LastName",
    Phone = new Phone
    {
        CountryCode = "1",
        Number = "4155552671"
    },
    Metadata = new Dictionary<string, object>()
    {
        {"coupon_code", "NY2018"},
        {"partner_id", "123989"}
    }
};

CustomerRequest request = new CustomerRequest
{
    Email = "email@docs.checkout.com",
    Name = "FirstName LastName",
    Phone = new Phone {CountryCode = "1", Number = "4155552671"},
    Metadata = new Dictionary<string, object>() {{"coupon_code", "NY2018"}, {"partner_id", "123989"}}
};

try
{
    await api.CustomersClient().Update("customer_id", request);
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/common"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/customers"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Vault}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := customers.CustomerRequest{
	Email: "email@docs.checkout.com",
	Name:  "Name",
	Phone: &common.Phone{
		CountryCode: "44",
		Number:      "4155552671",
	},
}

response, err := api.Customers.Update("customer_id", request)
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;
import com.checkout.common.Phone;
import com.checkout.customers.CustomerRequest;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

CustomerRequest customerRequest = CustomerRequest.builder()
    .email("email@docs.checkout.com")
    .name("name")
    .phone(Phone.builder().countryCode("1").number("4155552671").build())
    .instruments(Arrays.asList("instrument_id_1", "instrument_id_2"))
    .metadata(new HashMap<>())
    .build();

try {
    EmptyResponse response = api.customersClient().update("customer_id", customerRequest).get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const customerResponse = await cko.customers.update('cus_2tvaccfvs3lulevzg42vgyvtdq', {
		name: 'James Bond',
	});
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Common\Phone;
use Checkout\Customers\CustomerRequest;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Gateway])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

$phone = new Phone();
$phone->country_code = "+1";
$phone->number = "415 555 2671";

$request = new CustomerRequest();
$request->email = "email@docs.checkout.com";
$request->name = "name";
$request->phone = $phone;
$request->instruments = ["instrument_id_1", "instrument_id_2"];

try {
    $response = $api->getCustomersClient()->update("customer_id", $request);
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.common.common import Phone
from checkout_sdk.customers.customers import CustomerRequest
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder() 
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder() 
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

phone = Phone()
phone.country_code = '44'
phone.number = '4155552671'

request = CustomerRequest()
request.email = 'email@docs.checkout.com'
request.name = 'Name'
request.phone = phone
request.instruments = ['instrument_id_1', 'instrument_id_2']

try:
    response = api.customers.update(request)
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`PATCH /customers/{identifier}`

Update the details of a customer and link payment instruments to them.

> Body parameter

```json
{
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "default": "src_wmlfc3zyhqzehihu7giusaaawu"
}
```

<h3 id="update-customer-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identifier|path|string|true|The customer's ID|
|body|body|[UpdateCustomerDetailsRequest](#schemaupdatecustomerdetailsrequest)|true|none|

> Example responses

> 409 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="update-customer-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Customer updated successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Customer not found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A concurrent update conflict occurred. Call the [Get customer details](/tag/Customers#operation/getCustomerDetails) to retrieve the latest state before retrying.|Inline|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|

<h3 id="update-customer-details-responseschema">Response Schema</h3>

Status Code **409**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:customers ), ApiSecretKey
</aside>

## Delete a customer

<a id="opIddeleteCustomer"></a>

> Code samples

```csharp
// For more information please refer to https://github.com/checkout/checkout-sdk-net

//API keys
ICheckoutApi api = CheckoutSdk.Builder().StaticKeys()
    .SecretKey("secret_key")
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

//OAuth
ICheckoutApi api = CheckoutSdk.Builder().OAuth()
    .ClientCredentials("client_id", "client_secret")
    .Scopes(OAuthScope.Vault)
    .Environment(Environment.Sandbox)
    .EnvironmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .HttpClientFactory(new DefaultHttpClientFactory())
    .Build();

try
{
    EmptyResponse response = await api.CustomersClient().Delete("customer_id");
}
catch (CheckoutApiException e)
{
    // API error
    string requestId = e.RequestId;
    var statusCode = e.HttpStatusCode;
    IDictionary<string, object> errorDetails = e.ErrorDetails;
}
catch (CheckoutArgumentException e)
{
    // Bad arguments
}
catch (CheckoutAuthorizationException e)
{
    // Invalid authorization
}
```

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.Vault}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

response, err := api.Customers.Delete("customer_id")
if err != nil {
	return nil, err
}

return response, nil
```

```java
// For more information please refer to https://github.com/checkout/checkout-sdk-java
import com.checkout.CheckoutApi;
import com.checkout.CheckoutApiException;
import com.checkout.CheckoutArgumentException;
import com.checkout.CheckoutAuthorizationException;
import com.checkout.CheckoutSdk;
import com.checkout.EmptyResponse;
import com.checkout.Environment;
import com.checkout.OAuthScope;

// API Keys
CheckoutApi api = CheckoutSdk.builder()
    .staticKeys()
    .secretKey("secret_key")
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

// OAuth
CheckoutApi api = CheckoutSdk.builder()
    .oAuth()
    .clientCredentials("client_id", "client_secret")
    .scopes(OAuthScope.GATEWAY) // more scopes available
    .environment(Environment.SANDBOX) // or Environment.PRODUCTION
    .environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build();

try {
    EmptyResponse response = api.customersClient().delete("customer_id").get();
} catch (CheckoutApiException e) {
    // API error
    String requestId = e.getRequestId();
    int statusCode = e.getHttpStatusCode();
    Map<String, Object> errorDetails = e.getErrorDetails();
} catch (CheckoutArgumentException e) {
    // Bad arguments
} catch (CheckoutAuthorizationException e) {
    // Invalid authorization
}
```

```node
import { Checkout } from 'checkout-sdk-node';

let cko = new Checkout('your_client_secret_here', {
	client: 'ack_XXXXXXXXXXXX',
	scope: ['gateway'], // array of scopes
	environment: 'sandbox', // or "production"
        subdomain: '{prefix}', // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints., // or "production"
});

// Or if you use api keys:
// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});

try {
	const customerResponse = await cko.customers.delete('cus_2tvaccfvs3lulevzg42vgyvtdq');
} catch (err) {
	console.log(err.name);
}
```

```php
<?php
//For more information please refer to https://github.com/checkout/checkout-sdk-php

use Checkout\CheckoutApiException;
use Checkout\CheckoutAuthorizationException;
use Checkout\CheckoutSdk;
use Checkout\Environment;
use Checkout\OAuthScope;

//API Keys
$api = CheckoutSdk::builder()->staticKeys()
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->secretKey("secret_key")
    ->build();

//OAuth
$api = CheckoutSdk::builder()->oAuth()
    ->clientCredentials("client_id", "client_secret")
    ->scopes([OAuthScope::$Vault])
    ->environment(Environment::sandbox())
    ->environmentSubdomain("{prefix}") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    ->build();

try {
    $response = $api->getCustomersClient()->delete("customer_id");
} catch (CheckoutApiException $e) {
    // API error
    $error_details = $e->error_details;
    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;
} catch (CheckoutAuthorizationException $e) {
    // Bad Invalid authorization
}
```

```python
# For more information please refer to https://github.com/checkout/checkout-sdk-python
import checkout_sdk
from checkout_sdk.checkout_sdk import CheckoutSdk
from checkout_sdk.environment import Environment
from checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException
from checkout_sdk.oauth_scopes import OAuthScopes

# API Key
api_key = (
    CheckoutSdk.builder()
    .secret_key('secret_key') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .build()
)

# OAuth
oauth = (
    CheckoutSdk.builder()
    .oauth() 
    .client_credentials('client_id', 'client_secret') 
    .environment(Environment.sandbox())  # or Environment.production()
    .environment_subdomain("{prefix}")  # Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
    .scopes([OAuthScopes.GATEWAY]) 
    .build()
)

try:
    response = api.customers.delete("customer_id")
except CheckoutApiException as err:
    # API error
    request_id = err.request_id
    status_code = err.http_status_code
    error_details = err.error_details
    http_response = err.http_response
except CheckoutArgumentException as err:
    # Bad arguments

except CheckoutAuthorizationException as err:
    # Invalid authorization
```

`DELETE /customers/{identifier}`

Delete a customer and all of their linked payment instruments.

<h3 id="delete-a-customer-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identifier|path|string|true|The customer's ID|

> Example responses

> 409 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="delete-a-customer-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Customer deleted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Customer not found or not associated with client|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A concurrent update conflict occurred. Retry the request.|Inline|

<h3 id="delete-a-customer-responseschema">Response Schema</h3>

Status Code **409**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault vault:customers ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-face-authentication">Face Authentication</h1>

## Create a face authentication

<a id="opIdcreate_face_authentication"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/face-authentications \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/face-authentications HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "user_journey_id": "usj_t5bdzsdmi57ehhkrnmp5omjimu",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/face-authentications',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/face-authentications', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/face-authentications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/face-authentications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications";
      
      string json = @"{
  ""user_journey_id"": ""usj_t5bdzsdmi57ehhkrnmp5omjimu"",
  ""applicant_id"": ""aplt_tkoi5db4hryu5cei5vwoabr7we""
}";
      FavFaceAuthentication content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(FavFaceAuthentication content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(FavFaceAuthentication content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /face-authentications`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics) for an applicant you've previously verified using the [Identity Verification](https://www.checkout.com/docs/business-operations/verify-an-identity/identity-verification) solution.

Ensure you use your Face Authentication [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics#Configuration). 

> Body parameter

```json
{
  "user_journey_id": "usj_t5bdzsdmi57ehhkrnmp5omjimu",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we"
}
```

<h3 id="create-a-face-authentication-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[FavFaceAuthentication](#schemafavfaceauthentication)|true|none|

> Example responses

> Face authentication created successfully

```json
{
  "id": "fav_mtta050yudd54y5iqb5ijh8jtvz",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "created",
  "response_codes": [],
  "risk_labels": [],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_lkoi5db4hryu5cei5vwoabqere"
    }
  }
}
```

> Bad Request

```json
{
  "error_type": "request_invalid",
  "error_codes": [
    "applicant_id_required"
  ]
}
```

> Unprocessable Content

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "organization_no_configuration"
  ]
}
```

<h3 id="create-a-face-authentication-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Face authentication created successfully|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|[FavFaceAuthenticationError](#schemafavfaceauthenticationerror)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[FavFaceAuthenticationError](#schemafavfaceauthenticationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="create-a-face-authentication-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[FavFaceAuthenticationId](#schemafavfaceauthenticationid)|false|read-only|The face authentication's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get a face authentication

<a id="opIdretrieve_face_authentication"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /face-authentications/{face_authentication_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).

<h3 id="get-a-face-authentication-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|face_authentication_id|path|[FavFaceAuthenticationId](#schemafavfaceauthenticationid)|true|The face authentication's unique identifier.|

> Example responses

> Face authentication retrieved successfully

```json
{
  "id": "fav_mtta050yudd54y5iqb5ijh8jtvz",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_t5bdzsdmi57ehhkrnmp5omjimu",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "face": {
    "image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7ou"
    }
  }
}
```

```json
{
  "id": "fav_mtta050yudd54y5iqb5ijh8jtvz",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_t5bdzsdmi57ehhkrnmp5omjimu",
  "status": "declined",
  "response_codes": [
    {
      "code": 61412,
      "summary": "face_not_turned"
    },
    {
      "code": 62321,
      "summary": "face_face_mismatch"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "face": {
    "image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7ou"
    }
  }
}
```

<h3 id="get-a-face-authentication-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Face authentication retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="get-a-face-authentication-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[FavFaceAuthenticationId](#schemafavfaceauthenticationid)|false|read-only|The face authentication's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Anonymize a face authentication

<a id="opIdanonymize_face_authentication"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/anonymize";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /face-authentications/{face_authentication_id}/anonymize`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Remove the personal data in a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).

<h3 id="anonymize-a-face-authentication-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|face_authentication_id|path|string|true|The face authentication's unique identifier.|

> Example responses

> Personal data removed successfully

```json
{
  "id": "fav_mtta050yudd54y5iqb5ijh8jtvz",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_t5bdzsdmi57ehhkrnmp5omjimu",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7ou"
    }
  }
}
```

> Unprocessable Content

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "organization_no_configuration"
  ]
}
```

<h3 id="anonymize-a-face-authentication-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Personal data removed successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[FavFaceAuthenticationError](#schemafavfaceauthenticationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="anonymize-a-face-authentication-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[FavFaceAuthenticationId](#schemafavfaceauthenticationid)|false|read-only|The face authentication's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Create a face authentication attempt

<a id="opIdcreate_fav_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "redirect_url": "https://myweb.site?query-param=hello"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts";
      
      string json = @"{
  ""redirect_url"": ""https://myweb.site?query-param=hello""
}";
      FavAttemptRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(FavAttemptRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(FavAttemptRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /face-authentications/{face_authentication_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an attempt for a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).

If you've already created an attempt for this authentication, the [authentication status](https://www.checkout.com/docs/developer-resources/codes/identity-verification-codes#Face_Authentication_statuses) must be one of the following:

- `created`
- `pending`
- `capture_in_progress`
- `retry_required`

If you create a new attempt while the status is any other value, you receive a `409 Conflict` response.

> Body parameter

```json
{
  "redirect_url": "https://myweb.site?query-param=hello"
}
```

<h3 id="create-a-face-authentication-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|face_authentication_id|path|string|true|The face authentication's unique identifier.|
|body|body|[FavAttemptRequest](#schemafavattemptrequest)|false|none|

> Example responses

> Face authentication attempt created successfully

```json
{
  "id": "fatp_nk1wbmmczqumwt95k3v39mhbh2w",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "phone_number": {
    "country_code": "+1",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_language": "en-US"
  },
  "redirect_url": "https://myweb.site?query-param=hello",
  "status": "pending_redirection",
  "response_codes": [],
  "_links": {
    "verification_url": {
      "href": "https://idv.checkout.com/4hryu5cei5/"
    },
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts/fatp_nk1wbmmczqumwt95k3v39mhbh2w"
    }
  }
}
```

<h3 id="create-a-face-authentication-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Face authentication attempt created successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Conflict|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="create-a-face-authentication-attempt-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[FavAttemptId](#schemafavattemptid)|true|read-only|The unique identifier for the face authentication attempt.|
|» redirect_url|string|true|none|The URL to redirect the applicant to after the attempt.|
|» status|[IdvAttemptStatuses](#schemaidvattemptstatuses)|true|read-only|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|
|» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|» phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|»» country_code|[IdvPhonePrefix](#schemaidvphoneprefix)|true|none|The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).|
|»» number|[IdvDomesticPhoneNumber](#schemaidvdomesticphonenumber)|true|none|The applicant's mobile number, without the country code.|
|» client_information|[FavClientInformation](#schemafavclientinformation)|false|none|The applicant's details.|
|»» pre_selected_residence_country|string|false|none|The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|»» pre_selected_language|string(IETF BCP 47 language tag)|false|none|The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag|
|» applicant_session_information|[FavApplicantSessionInformation](#schemafavapplicantsessioninformation)|false|none|The details of the attempt.|
|»» ip_address|string|false|none|The applicant's IP address during the attempt.|
|»» number_of_sessions|integer|false|read-only|The number of sessions the applicant opened during the attempt.|
|»» user_agent|string|false|read-only|The user agent of the browser the applicant used during the attempt.|
|»» initial_device|[IdvInitialDevices](#schemaidvinitialdevices)|false|read-only|The type of device the applicant used to start the attempt.|
|» _links|[FavAttemptLinks](#schemafavattemptlinks)|true|read-only|The details of links related to the resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|capture_aborted|
|status|capture_in_progress|
|status|checks_inconclusive|
|status|checks_in_progress|
|status|completed|
|status|expired|
|status|pending_redirection|
|status|capture_refused|
|status|terminated|
|initial_device|desktop|
|initial_device|mobile|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get face authentication attempts

<a id="opIdlist_fav_attempts"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /face-authentications/{face_authentication_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of all attempts for a specific [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).

<h3 id="get-face-authentication-attempts-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|face_authentication_id|path|string|true|The face authentication's unique identifier.|
|skip|query|integer|false|The number of attempts to skip.|
|limit|query|integer|false|The maximum number of attempts to return.|

> Example responses

> Face authentication attempts retrieved successfully

```json
{
  "total_count": 2,
  "skip": 10,
  "limit": 10,
  "data": [
    {
      "id": "fatp_nk1wbmmczqumwt95k3v39mhbh2w",
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z",
      "status": "completed",
      "response_codes": [],
      "phone_number": {
        "country_code": "+1",
        "number": "5555550102"
      },
      "client_information": {
        "pre_selected_residence_country": "FR",
        "pre_selected_language": "en-US"
      },
      "applicant_session_information": {
        "ip_address": "123.123.123.01",
        "number_of_sessions": 2,
        "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
        "initial_device": "mobile"
      },
      "redirect_url": "https://myweb.site?query-param=hello",
      "_links": {
        "verification_url": {
          "href": "https://idv.checkout.com/4hryu5cei5/"
        },
        "self": {
          "href": "https://identity-verification.sandbox.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts/fatp_nk1wbmmczqumwt95k3v39mhbh2w"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts"
    },
    "next": {
      "href": "https://identity-verification.sandbox.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts?..."
    },
    "previous": {
      "href": "https://identity-verification.sandbox.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts?..."
    }
  }
}
```

<h3 id="get-face-authentication-attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Face authentication attempts retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-face-authentication-attempts-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» total_count|integer|true|none|The total number of attempts.|
|» skip|integer|true|none|The number of attempts you want to skip, to help you view the relevant attempt. <br/>Example – There are 10 attempts. If you provide `6`, the first six attempts are skipped.|
|» limit|integer|true|none|The maximum number of attempts you want returned. <br/>Example – There are 10 attempts. If you set `limit` to `5`, but skip the first six, four attempts are returned.|
|» data|[allOf]|true|none|The details of the attempt.|
|»» id|[FavAttemptId](#schemafavattemptid)|true|read-only|The unique identifier for the face authentication attempt.|
|»» redirect_url|string|true|none|The URL to redirect the applicant to after the attempt.|
|»» status|[IdvAttemptStatuses](#schemaidvattemptstatuses)|true|read-only|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|
|»» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|»»» country_code|[IdvPhonePrefix](#schemaidvphoneprefix)|true|none|The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).|
|»»» number|[IdvDomesticPhoneNumber](#schemaidvdomesticphonenumber)|true|none|The applicant's mobile number, without the country code.|
|»» client_information|[FavClientInformation](#schemafavclientinformation)|false|none|The applicant's details.|
|»»» pre_selected_residence_country|string|false|none|The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|»»» pre_selected_language|string(IETF BCP 47 language tag)|false|none|The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag|
|»» applicant_session_information|[FavApplicantSessionInformation](#schemafavapplicantsessioninformation)|false|none|The details of the attempt.|
|»»» ip_address|string|false|none|The applicant's IP address during the attempt.|
|»»» number_of_sessions|integer|false|read-only|The number of sessions the applicant opened during the attempt.|
|»»» user_agent|string|false|read-only|The user agent of the browser the applicant used during the attempt.|
|»»» initial_device|[IdvInitialDevices](#schemaidvinitialdevices)|false|read-only|The type of device the applicant used to start the attempt.|
|»» _links|[FavAttemptLinks](#schemafavattemptlinks)|true|read-only|The details of links related to the resource.|
|» _links|any|true|read-only|The details of links to the previous, current, and next resources.|

*allOf*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|read-only|The details of links related to the resource.|
|»»» self|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the resource.|
|»»»» href|string(uri)|true|none|none|

*and*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|read-only|none|
|»»» next|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|
|»»»» href|string(uri)|true|none|none|

*and*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|read-only|none|
|»»» previous|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|capture_aborted|
|status|capture_in_progress|
|status|checks_inconclusive|
|status|checks_in_progress|
|status|completed|
|status|expired|
|status|pending_redirection|
|status|capture_refused|
|status|terminated|
|initial_device|desktop|
|initial_device|mobile|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get a face authentication attempt

<a id="opIdget_fav_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /face-authentications/{face_authentication_id}/attempts/{attempt_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of a specific attempt for a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).

<h3 id="get-a-face-authentication-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|face_authentication_id|path|string|true|The face authentication's unique identifier.|
|attempt_id|path|string|true|The attempt's unique identifier.|

> Example responses

> Face authentication attempt retrieved successfully

```json
{
  "id": "fatp_nk1wbmmczqumwt95k3v39mhbh2w",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "redirect_url": "https://myweb.site?query-param=hello",
  "status": "capture_in_progress",
  "phone_number": {
    "country_code": "+1",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_language": "en-US"
  },
  "applicant_session_information": {
    "ip_address": "123.123.123.01",
    "number_of_sessions": 2,
    "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
    "initial_device": "mobile"
  },
  "response_codes": [],
  "_links": {
    "verification_url": {
      "href": "https://idv.checkout.com/4hryu5cei5/"
    },
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts/fatp_nk1wbmmczqumwt95k3v39mhbh2w"
    }
  }
}
```

<h3 id="get-a-face-authentication-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Face authentication attempt retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-a-face-authentication-attempt-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[FavAttemptId](#schemafavattemptid)|true|read-only|The unique identifier for the face authentication attempt.|
|» redirect_url|string|true|none|The URL to redirect the applicant to after the attempt.|
|» status|[IdvAttemptStatuses](#schemaidvattemptstatuses)|true|read-only|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|
|» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|» phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|»» country_code|[IdvPhonePrefix](#schemaidvphoneprefix)|true|none|The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).|
|»» number|[IdvDomesticPhoneNumber](#schemaidvdomesticphonenumber)|true|none|The applicant's mobile number, without the country code.|
|» client_information|[FavClientInformation](#schemafavclientinformation)|false|none|The applicant's details.|
|»» pre_selected_residence_country|string|false|none|The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|»» pre_selected_language|string(IETF BCP 47 language tag)|false|none|The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag|
|» applicant_session_information|[FavApplicantSessionInformation](#schemafavapplicantsessioninformation)|false|none|The details of the attempt.|
|»» ip_address|string|false|none|The applicant's IP address during the attempt.|
|»» number_of_sessions|integer|false|read-only|The number of sessions the applicant opened during the attempt.|
|»» user_agent|string|false|read-only|The user agent of the browser the applicant used during the attempt.|
|»» initial_device|[IdvInitialDevices](#schemaidvinitialdevices)|false|read-only|The type of device the applicant used to start the attempt.|
|» _links|[FavAttemptLinks](#schemafavattemptlinks)|true|read-only|The details of links related to the resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|capture_aborted|
|status|capture_in_progress|
|status|checks_inconclusive|
|status|checks_in_progress|
|status|completed|
|status|expired|
|status|pending_redirection|
|status|capture_refused|
|status|terminated|
|initial_device|desktop|
|initial_device|mobile|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get face authentication attempt assets

<a id="opIdget_face_authentication_attempt_assets"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the assets (face images and videos) captured during a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics) attempt.

Videos are not exposed by default. Contact your account manager to enable this feature.

Results are paginated. Use the `skip` and `limit` query parameters to navigate through pages.

<h3 id="get-face-authentication-attempt-assets-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|face_authentication_id|path|string|true|The face authentication's unique identifier.|
|attempt_id|path|string|true|The attempt's unique identifier.|
|skip|query|integer|false|The number of assets to skip.|
|limit|query|integer|false|The maximum number of assets to return.|

> Example responses

> Face authentication attempt assets retrieved successfully

```json
{
  "total_count": 2,
  "skip": 0,
  "limit": 10,
  "data": [
    {
      "type": "face_image",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/face_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    },
    {
      "type": "face_video",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/face_video.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts/fatp_nk1wbmmczqumwt95k3v39mhbh2w/assets"
    },
    "next": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts/fatp_nk1wbmmczqumwt95k3v39mhbh2w/assets?..."
    },
    "previous": {
      "href": "https://identity-verification.checkout.com/face-authentications/fav_mtta050yudd54y5iqb5ijh8jtvz/attempts/fatp_nk1wbmmczqumwt95k3v39mhbh2w/assets?..."
    }
  }
}
```

<h3 id="get-face-authentication-attempt-assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Face authentication attempt assets retrieved successfully|[FavAttemptAssets](#schemafavattemptassets)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-forward">Forward</h1>

## Forward an API request

<a id="opIdforwardRequest"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/forward \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/forward HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "source": {
    "id": "src_v5rgkf3gdtpuzjqesyxmyodnya",
    "type": "id"
  },
  "reference": "ORD-5023-4E89",
  "processing_channel_id": "pc_azsiyswl7bwe2ynjzujy7lcjca",
  "network_token": {
    "enabled": true,
    "request_cryptogram": false
  },
  "destination_request": {
    "url": "https://example.com/payments",
    "method": "POST",
    "headers": {
      "encrypted": "<JWE encrypted JSON object with string values>",
      "raw": {
        "Idempotency-Key": "xe4fad12367dfgrds",
        "Content-Type": "application/json"
      }
    },
    "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}",
    "signature": {
      "type": "dlocal",
      "dlocal_parameters": {
        "secret_key": "9f439fe1a9f96e67b047d3c1a28c33a2e"
      }
    },
    "variables": [
      {
        "name": "card_data",
        "value": "{\"card_number\":\"{{card_number}}\",\"expiry\":\"{{card_expiry_month}}\"}"
      },
      {
        "name": "public_key",
        "value": "{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"enc\",\"kid\":\"key-001\"}"
      }
    ],
    "query": [
      {
        "name": "api_key",
        "value": "1234567890"
      },
      {
        "name": "user_id",
        "value": "1234567890"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/forward',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/forward',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/forward', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/forward', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/forward");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/forward", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/forward";
      
      string json = @"{
  ""source"": {
    ""id"": ""src_v5rgkf3gdtpuzjqesyxmyodnya"",
    ""type"": ""id""
  },
  ""reference"": ""ORD-5023-4E89"",
  ""processing_channel_id"": ""pc_azsiyswl7bwe2ynjzujy7lcjca"",
  ""network_token"": {
    ""enabled"": true,
    ""request_cryptogram"": false
  },
  ""destination_request"": {
    ""url"": ""https://example.com/payments"",
    ""method"": ""POST"",
    ""headers"": {
      ""encrypted"": ""<JWE encrypted JSON object with string values>"",
      ""raw"": {
        ""Idempotency-Key"": ""xe4fad12367dfgrds"",
        ""Content-Type"": ""application/json""
      }
    },
    ""body"": ""{\""amount\"": 1000, \""currency\"": \""USD\"", \""reference\"": \""some_reference\"", \""source\"": {\""type\"": \""card\"", \""number\"": \""{{card_number}}\"", \""expiry_month\"": \""{{card_expiry_month}}\"", \""expiry_year\"": \""{{card_expiry_year_yyyy}}\"", \""card_pin\"": \""{{card_pin}}\"", \""name\"": \""Ali Farid\""}, \""payment_type\"": \""Regular\"", \""authorization_type\"": \""Final\"", \""capture\"": true, \""processing_channel_id\"": \""pc_xxxxxxxxxxx\"", \""risk\"": {\""enabled\"": false}, \""merchant_initiated\"": true}"",
    ""signature"": {
      ""type"": ""dlocal"",
      ""dlocal_parameters"": {
        ""secret_key"": ""9f439fe1a9f96e67b047d3c1a28c33a2e""
      }
    },
    ""variables"": [
      {
        ""name"": ""card_data"",
        ""value"": ""{\""card_number\"":\""{{card_number}}\"",\""expiry\"":\""{{card_expiry_month}}\""}""
      },
      {
        ""name"": ""public_key"",
        ""value"": ""{\""kty\"":\""RSA\"",\""e\"":\""AQAB\"",\""use\"":\""enc\"",\""kid\"":\""key-001\""}""
      }
    ],
    ""query"": [
      {
        ""name"": ""api_key"",
        ""value"": ""1234567890""
      },
      {
        ""name"": ""user_id"",
        ""value"": ""1234567890""
      }
    ]
  }
}";
      ForwardRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(ForwardRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(ForwardRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /forward`

Forwards an API request to a third-party endpoint.

For example, you can <a href="https://www.checkout.com/docs/payments/manage-payments/forward-stored-payment-credentials" target="_blank\">forward payment credentials</a> you've stored in our Vault to a third-party payment processor.

> Body parameter

```json
{
  "source": {
    "id": "src_v5rgkf3gdtpuzjqesyxmyodnya",
    "type": "id"
  },
  "reference": "ORD-5023-4E89",
  "processing_channel_id": "pc_azsiyswl7bwe2ynjzujy7lcjca",
  "network_token": {
    "enabled": true,
    "request_cryptogram": false
  },
  "destination_request": {
    "url": "https://example.com/payments",
    "method": "POST",
    "headers": {
      "encrypted": "<JWE encrypted JSON object with string values>",
      "raw": {
        "Idempotency-Key": "xe4fad12367dfgrds",
        "Content-Type": "application/json"
      }
    },
    "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}",
    "signature": {
      "type": "dlocal",
      "dlocal_parameters": {
        "secret_key": "9f439fe1a9f96e67b047d3c1a28c33a2e"
      }
    },
    "variables": [
      {
        "name": "card_data",
        "value": "{\"card_number\":\"{{card_number}}\",\"expiry\":\"{{card_expiry_month}}\"}"
      },
      {
        "name": "public_key",
        "value": "{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"enc\",\"kid\":\"key-001\"}"
      }
    ],
    "query": [
      {
        "name": "api_key",
        "value": "1234567890"
      },
      {
        "name": "user_id",
        "value": "1234567890"
      }
    ]
  }
}
```

<h3 id="forward-an-api-request-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[ForwardRequest](#schemaforwardrequest)|true|none|

> Example responses

> 200 Response

```json
{
  "request_id": "fwd_01HK153X00VZ1K15Z3HYC0QGPN",
  "destination_response": {
    "status": 201,
    "headers": {
      "Cko-Request-Id": [
        "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
      ],
      "Content-Type": [
        "application/json"
      ]
    },
    "body": "{\"id\": \"pay_mbabizu24mvu3mela5njyhpit4\", \"action_id\": \"act_mbabizu24mvu3mela5njyhpit4\", \"amount\": 6540, \"currency\": \"USD\", \"approved\": true, \"status\": \"Authorized\", \"auth_code\": \"770687\", \"response_code\": \"10000\", \"response_summary\": \"Approved\", \"_links\": {\"self\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4\"}, \"action\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions\"}, \"void\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids\"}, \"capture\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures\"}}}"
  },
  "source": {
    "id": "src_evls5rkafabudm3x6gejc4bbo4",
    "bin": "45434748",
    "last4": "9996",
    "fingerprint": "B086A9386241A0BDCBEFAFC1E4FD5C3DD04684AAD21A126CB426C05555AC86A9"
  }
}
```

<h3 id="forward-an-api-request-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The request was successfully forwarded.|[ForwardResponse](#schemaforwardresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent.|[ForwardValidationError](#schemaforwardvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: forward ), ApiSecretKey
</aside>

## Get forward request

<a id="opIdgetForwardRequest"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/forward/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/forward/{id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/forward/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/forward/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/forward/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/forward/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/forward/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/forward/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/forward/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /forward/{id}`

Retrieve the details of a successfully forwarded API request.    

The details can be retrieved for up to 14 days after the request was initiated.

<h3 id="get-forward-request-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|string|true|The unique identifier of the forward request.|

> Example responses

> 200 Response

```json
{
  "request_id": "fwd_01HK153X00VZ1K15Z3HYC0QGPN",
  "reference": "ORD-5023-4E89",
  "entity_id": "ent_lp6h57qskk6ubewfk3pq4f2c2y",
  "destination_request": {
    "url": "https://example.com/payments",
    "method": "POST",
    "headers": {
      "Authorization": "***redacted***",
      "Idempotency-Key": "xe4fad12367dfgrds",
      "Content-Type": "application/json"
    },
    "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}"
  },
  "destination_response": {
    "status": 201,
    "headers": {
      "Cko-Request-Id": [
        "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
      ],
      "Content-Type": [
        "application/json"
      ]
    },
    "body": "{\"id\": \"pay_mbabizu24mvu3mela5njyhpit4\", \"action_id\": \"act_mbabizu24mvu3mela5njyhpit4\", \"amount\": 6540, \"currency\": \"USD\", \"approved\": true, \"status\": \"Authorized\", \"auth_code\": \"770687\", \"response_code\": \"10000\", \"response_summary\": \"Approved\", \"_links\": {\"self\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4\"}, \"action\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions\"}, \"void\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids\"}, \"capture\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures\"}}}"
  },
  "created_on": "2024-01-02T15:04:05+00:00"
}
```

<h3 id="get-forward-request-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Forward request retrieved successfully|[GetForwardRequestResponse](#schemagetforwardrequestresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Forward request not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: forward ), ApiSecretKey
</aside>

## Create secret

<a id="opIdcreateSecret"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/secrets \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/secrets HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "name": "secret_name",
  "value": "plaintext",
  "entity_id": "ent_12345"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/secrets',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/secrets',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/secrets', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/secrets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/secrets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/secrets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/secrets";
      
      string json = @"{
  ""name"": ""secret_name"",
  ""value"": ""plaintext"",
  ""entity_id"": ""ent_12345""
}";
      CreateSecretPlaintextRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(CreateSecretPlaintextRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(CreateSecretPlaintextRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /secrets`

Create a new secret with a plaintext value.

**Validation Rules:**
- `name`: 1-64 characters, alphanumeric + underscore
- `value`: max 8KB
- `entity_id` (optional): when provided, secret is scoped to this entity

**Response:**
Returns metadata.

> Body parameter

```json
{
  "name": "secret_name",
  "value": "plaintext",
  "entity_id": "ent_12345"
}
```

<h3 id="create-secret-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[CreateSecretPlaintextRequest](#schemacreatesecretplaintextrequest)|true|none|

> Example responses

> Secret created successfully.

```json
{
  "name": "secret_name",
  "created_at": "2025-10-14T00:00:00Z",
  "updated_at": "2025-10-14T00:00:00Z",
  "version": 1,
  "entity_id": "ent_123"
}
```

> Invalid data was sent

```json
{
  "error_type": "validation_error",
  "error_codes": [
    "invalid_secret_name"
  ]
}
```

```json
{
  "error_type": "validation_error",
  "error_codes": [
    "secret_value_too_large"
  ]
}
```

<h3 id="create-secret-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Secret created successfully.|[SecretResponse](#schemasecretresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Conflict - secret with this name already exists|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: forward forward:secrets ), ApiSecretKey
</aside>

## List secrets

<a id="opIdlistSecrets"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/secrets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/secrets HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/secrets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/secrets',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/secrets', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/secrets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/secrets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/secrets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/secrets";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /secrets`

Returns metadata for secrets scoped for client_id.

> Example responses

> List of secrets

```json
{
  "data": [
    {
      "name": "secret_name_1",
      "created_at": "2025-10-14T00:00:00Z",
      "updated_at": "2025-10-14T00:00:00Z",
      "version": 1,
      "entity_id": "ent_123"
    },
    {
      "name": "secret_name_2",
      "created_at": "2025-10-14T01:00:00Z",
      "updated_at": "2025-10-14T01:00:00Z",
      "version": 2,
      "entity_id": "ent_456"
    },
    {
      "name": "secret_name_3",
      "created_at": "2025-10-14T02:00:00Z",
      "updated_at": "2025-10-14T02:00:00Z",
      "version": 3,
      "entity_id": "ent_789"
    }
  ]
}
```

<h3 id="list-secrets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|List of secrets|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<h3 id="list-secrets-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» data|[[SecretResponse](#schemasecretresponse)]|true|none|[Secret response metadata. The secret value is never returned in responses.]|
|»» name|string|true|none|Secret name (1-64 characters, alphanumeric and underscore)|
|»» created_at|string(date-time)|true|none|Timestamp when the secret was created.|
|»» updated_at|string(date-time)|true|none|Timestamp when the secret was last updated.|
|»» version|integer|true|none|Version number.|
|»» entity_id|string|false|none|Entity ID if the secret is scoped to a specific entity.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: forward forward:secrets ), ApiSecretKey
</aside>

## Update secret

<a id="opIdupdateSecret"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/secrets/{name} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/secrets/{name} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "entity_id": "ent_1234",
  "value": "NEW_VALUE_1"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/secrets/{name}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/secrets/{name}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/secrets/{name}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/secrets/{name}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/secrets/{name}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/secrets/{name}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /secrets/{name}`

Update an existing secret. After updating, the version is automatically incremented.

**Validation Rules:**
- Only `value` and `entity_id` can be updated
- `value`: max 8KB

**Response:**
Returns updated metadata with incremented version.

> Body parameter

```json
{
  "entity_id": "ent_1234",
  "value": "NEW_VALUE_1"
}
```

<h3 id="update-secret-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|name|path|string|true|Secret name.|
|body|body|[UpdateSecretRequest](#schemaupdatesecretrequest)|true|none|

> Example responses

> Secret updated successfully

```json
{
  "name": "secret_name_1",
  "created_at": "2025-10-14T00:00:00Z",
  "updated_at": "2025-10-14T12:00:00Z",
  "version": 2,
  "entity_id": "ent_123"
}
```

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="update-secret-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Secret updated successfully|[SecretResponse](#schemasecretresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Secret not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: forward forward:secrets ), ApiSecretKey
</aside>

## Delete secret

<a id="opIddeleteSecret"></a>

> Code samples

```shell
# You can also use wget
curl -X DELETE https://{prefix}.api.sandbox.checkout.com/secrets/{name} \
  -H 'Authorization: Bearer {access-token}'

```

```http
DELETE https://{prefix}.api.sandbox.checkout.com/secrets/{name} HTTP/1.1

```

```javascript

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/secrets/{name}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://{prefix}.api.sandbox.checkout.com/secrets/{name}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://{prefix}.api.sandbox.checkout.com/secrets/{name}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://{prefix}.api.sandbox.checkout.com/secrets/{name}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/secrets/{name}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://{prefix}.api.sandbox.checkout.com/secrets/{name}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    /// Make a dummy request
    public async Task MakeDeleteRequest()
    {
      int id = 1;
      string url = "https://{prefix}.api.sandbox.checkout.com/secrets/{name}";

      await DeleteAsync(id, url);
    }

    /// Performs a DELETE Request
    public async Task DeleteAsync(int id, string url)
    {
        //Execute DELETE request
        HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}");

        //Return response
        await DeserializeObject(response);
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`DELETE /secrets/{name}`

Permanently delete a secret by name.

<h3 id="delete-secret-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|name|path|string|true|Secret name.|

<h3 id="delete-secret-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|Secret deleted successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Secret not found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: forward forward:secrets ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-id-document-verification">ID Document Verification</h1>

## Create an ID document verification

<a id="opIdcreate_id_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/id-document-verifications \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/id-document-verifications HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/id-document-verifications', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/id-document-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications";
      
      string json = @"{
  ""user_journey_id"": ""usj_tkoi5db4hryu5cei5vwoabr7we"",
  ""applicant_id"": ""aplt_tkoi5db4hryu5cei5vwoabr7we"",
  ""declared_data"": {
    ""name"": ""Hannah Bret""
  }
}";
      IddvIdDocumentVerification content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(IddvIdDocumentVerification content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(IddvIdDocumentVerification content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /id-document-verifications`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) for an applicant.

Ensure you use your ID Document Verification [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents#Configuration).

> Body parameter

```json
{
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  }
}
```

<h3 id="create-an-id-document-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[IddvIdDocumentVerification](#schemaiddviddocumentverification)|true|none|

> Example responses

> ID document verification created successfully

```json
{
  "id": "iddv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "declared_data": {
    "name": "Hannah Bret"
  },
  "document": {
    "full_name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "document_type": "ID",
    "document_issuing_country": "US",
    "address": "123 Main Street, London, SW1A 1AA",
    "front_image_signed_url": "https://storage-b.env/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/tight_crops/FRA-I5-Front-bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921906596.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163228Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87d8467ab92cbad7c00171af28e613d495f3ff441ce0ea59dd013d68abc50555"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

> Bad Request

```json
{
  "error_type": "request_invalid",
  "error_codes": [
    "declared_data__name__required"
  ]
}
```

> Unprocessable Content

```json
{
  "error_type": "request_invalid",
  "error_codes": [
    "declared_data__name__required"
  ]
}
```

<h3 id="create-an-id-document-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|ID document verification created successfully|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="create-an-id-document-verification-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|false|read-only|The ID document verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an ID document verification

<a id="opIdretrieve_id_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /id-document-verifications/{id_document_verification_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of an existing [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).

<h3 id="get-an-id-document-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|

> Example responses

> ID document verification retrieved successfully

```json
{
  "id": "iddv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "declared_data": {
    "name": "Hannah Bret"
  },
  "document": {
    "full_name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "document_type": "ID",
    "document_issuing_country": "US",
    "address": "123 Main Street, London, SW1A 1AA",
    "front_image_signed_url": "https://storage-b.env/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/tight_crops/FRA-I5-Front-bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921906596.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163228Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87d8467ab92cbad7c00171af28e613d495f3ff441ce0ea59dd013d68abc50555"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="get-an-id-document-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ID document verification retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-an-id-document-verification-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|false|read-only|The ID document verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Anonymize an ID document verification

<a id="opIdanonymize_id_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/anonymize";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /id-document-verifications/{id_document_verification_id}/anonymize`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Remove the personal data from an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).

<h3 id="anonymize-an-id-document-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|

> Example responses

> Personal data removed successfully

```json
{
  "id": "iddv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "declared_data": {
    "name": "Hannah Bret"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="anonymize-an-id-document-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Personal data removed successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="anonymize-an-id-document-verification-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|false|read-only|The ID document verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Create an ID document verification attempt

<a id="opIdcreate_id_document_verification_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

```

```javascript
const inputBody = '{
  "document_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts";
      
      string json = @"{
  ""document_front"": ""data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n""
}";
      IddvAttemptRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(IddvAttemptRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(IddvAttemptRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /id-document-verifications/{id_document_verification_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) attempt.

If you've previously created an attempt for this verification, the [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses) must be one of the following:

- `created`
- `retry_required`

If you create a new attempt while the status is any other value, you receive a `409 Conflict` response.

Images must not exceed 10MB in size and must be in one of the following formats:

- `JPEG`
- `PDF`
- `PNG`

> Body parameter

```yaml
document_front: |
  data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…

```

<h3 id="create-an-id-document-verification-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|
|body|body|[IddvAttemptRequest](#schemaiddvattemptrequest)|false|none|

> Example responses

> ID document verification attempt created successfully

```json
{
  "id": "datp_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "completed",
  "response_codes": [],
  "_links": {
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/id-document-verifications/datp_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="create-an-id-document-verification-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|ID document verification attempt created successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Conflict|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="create-an-id-document-verification-attempt-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IddvAttemptId](#schemaiddvattemptid)|true|read-only|The unique identifier for the ID document verification attempt.|
|» status|[IddvAttemptStates](#schemaiddvattemptstates)|true|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt.|
|» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|» _links|[IdvSelfLink](#schemaidvselflink)|true|read-only|The details of links related to the resource.|
|»» self|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the resource.|
|»»» href|string(uri)|true|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|status|checks_in_progress|
|status|checks_inconclusive|
|status|completed|
|status|quality_checks_aborted|
|status|quality_checks_in_progress|
|status|terminated|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get ID document verification attempts

<a id="opIdlist_attempts_id_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /id-document-verifications/{id_document_verification_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of all attempts for a specific [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).

<h3 id="get-id-document-verification-attempts-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|
|skip|query|integer|false|The number of attempts to skip.|
|limit|query|integer|false|The maximum number of attempts to return.|

> Example responses

> ID document verification attempts retrieved successfully

```json
{
  "total_count": 2,
  "skip": 10,
  "limit": 10,
  "data": [
    {
      "id": "datp_tkoi5db4hryu5cei5vwoabr7we",
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z",
      "status": "completed",
      "response_codes": [],
      "_links": {
        "self": {
          "href": "https://idv.checkout.com/iddv_tkoi5db4hryu5cei5vwoabr7we"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we/attempts"
    },
    "next": {
      "href": "https://identity-verification.sandbox.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we/attempts?..."
    },
    "previous": {
      "href": "https://identity-verification.sandbox.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we/attempts?..."
    }
  }
}
```

<h3 id="get-id-document-verification-attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ID document verification attempts retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-id-document-verification-attempts-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» total_count|integer|true|none|The total number of attempts.|
|» skip|integer|true|none|The number of attempts you want to skip, to help you view the relevant attempt. <br/>Example – There are 10 attempts. If you provide `6`, the first six attempts are skipped.|
|» limit|integer|true|none|The maximum number of attempts you want returned. <br/>Example – There are 10 attempts. If you set `limit` to `5`, but skip the first six, four attempts are returned.|
|» data|[allOf]|true|none|The details of the attempt.|
|»» id|[IddvAttemptId](#schemaiddvattemptid)|true|read-only|The unique identifier for the ID document verification attempt.|
|»» status|[IddvAttemptStates](#schemaiddvattemptstates)|true|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt.|
|»» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» _links|[IdvSelfLink](#schemaidvselflink)|true|read-only|The details of links related to the resource.|
|»»» self|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the resource.|
|»»»» href|string(uri)|true|none|none|
|» _links|any|true|read-only|The details of links to the previous, current, and next resources.|

*allOf*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|read-only|The details of links related to the resource.|

*and*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|read-only|none|
|»»» next|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|
|»»»» href|string(uri)|true|none|none|

*and*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|read-only|none|
|»»» previous|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|checks_in_progress|
|status|checks_inconclusive|
|status|completed|
|status|quality_checks_aborted|
|status|quality_checks_in_progress|
|status|terminated|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an ID document verification attempt

<a id="opIdget_id_document_verification_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of a specific attempt for an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).

<h3 id="get-an-id-document-verification-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|
|attempt_id|path|string|true|The attempt's unique identifier.|

> Example responses

> ID document verification attempt retrieved successfully

```json
{
  "id": "datp_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "completed",
  "response_codes": [],
  "_links": {
    "self": {
      "href": "https://idv.checkout.com/datp_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="get-an-id-document-verification-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ID document verification attempt retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-an-id-document-verification-attempt-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IddvAttemptId](#schemaiddvattemptid)|true|read-only|The unique identifier for the ID document verification attempt.|
|» status|[IddvAttemptStates](#schemaiddvattemptstates)|true|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt.|
|» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|» _links|[IdvSelfLink](#schemaidvselflink)|true|read-only|The details of links related to the resource.|
|»» self|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the resource.|
|»»» href|string(uri)|true|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|status|checks_in_progress|
|status|checks_inconclusive|
|status|completed|
|status|quality_checks_aborted|
|status|quality_checks_in_progress|
|status|terminated|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get ID document verification attempt assets

<a id="opIdget_id_document_verification_attempt_assets"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the assets (the front and back images of the document) uploaded for an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) attempt.

Results are paginated. Use the `skip` and `limit` query parameters to navigate through pages.

<h3 id="get-id-document-verification-attempt-assets-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|
|attempt_id|path|[IddvAttemptId](#schemaiddvattemptid)|true|The attempt's unique identifier.|
|skip|query|integer|false|The number of assets to skip.|
|limit|query|integer|false|The maximum number of assets to return.|

> Example responses

> ID document verification attempt assets retrieved successfully

```json
{
  "total_count": 2,
  "skip": 0,
  "limit": 10,
  "data": [
    {
      "type": "document_front_image",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/document_front.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    },
    {
      "type": "document_back_image",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/document_back.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we/attempts/datp_tkoi5db4hryu5cei5vwoabraio/assets"
    },
    "next": {
      "href": "https://identity-verification.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we/attempts/datp_tkoi5db4hryu5cei5vwoabraio/assets?..."
    },
    "previous": {
      "href": "https://identity-verification.checkout.com/id-document-verifications/iddv_tkoi5db4hryu5cei5vwoabr7we/attempts/datp_tkoi5db4hryu5cei5vwoabraio/assets?..."
    }
  }
}
```

<h3 id="get-id-document-verification-attempt-assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ID document verification attempt assets retrieved successfully|[IddvAttemptAssets](#schemaiddvattemptassets)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get ID document verification report

<a id="opIdpdf_id_document_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/id-document-verifications/{id_document_verification_id}/pdf-report";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /id-document-verifications/{id_document_verification_id}/pdf-report`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the report for an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) in PDF format.

The report is only available when the [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses) is `approved` or `declined`, and you've received a [ID document verification report created](https://www.checkout.com/docs/developer-resources/webhooks/webhook-event-types/id-document-verification-webhooks) webhook.

<h3 id="get-id-document-verification-report-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id_document_verification_id|path|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|The ID document verification's unique identifier.|

> Example responses

> ID document verification report retrieved successfully

```json
{
  "pdf_report": "https://www.example.com/reports/idv_tkoi5db4hryu5cei5vwoabr7we.pdf"
}
```

<h3 id="get-id-document-verification-report-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|ID document verification report retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="get-id-document-verification-report-responseschema">Response Schema</h3>

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-applicants">Applicants</h1>

## Create an applicant

<a id="opIdcreate_applicant"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/applicants \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/applicants HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/applicants',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/applicants',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/applicants', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/applicants', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/applicants", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/applicants";
      
      string json = @"{
  ""external_applicant_id"": ""ext_osdfdfdb4hryu5cei5vwoabrk5k"",
  ""email"": ""hannah.bret@example.com"",
  ""external_applicant_name"": ""Hannah Bret""
}";
      IdvApplicant content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(IdvApplicant content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(IdvApplicant content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /applicants`

Create a profile for an [Identities applicant](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).

> Body parameter

```json
{
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret"
}
```

<h3 id="create-an-applicant-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[IdvApplicant](#schemaidvapplicant)|false|none|

> Example responses

> Applicant created successfully

```json
{
  "id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret",
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

> Bad Request

```json
{
  "error_type": "request_invalid",
  "error_codes": [
    "phone_number__invalid_format"
  ]
}
```

<h3 id="create-an-applicant-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Applicant created successfully|[IdvApplicant](#schemaidvapplicant)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|

<h3 id="create-an-applicant-responseschema">Response Schema</h3>

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an applicant

<a id="opIdretrieve_applicant"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /applicants/{applicant_id}`

Get the details of an [applicant profile](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).

<h3 id="get-an-applicant-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|applicant_id|path|[ApplicantId](#schemaapplicantid)|true|The applicant profile's unique identifier.|

> Example responses

> Applicant profile retrieved successfully

```json
{
  "id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret",
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="get-an-applicant-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Applicant profile retrieved successfully|[IdvApplicant](#schemaidvapplicant)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Update an applicant

<a id="opIdupdate_applicant"></a>

> Code samples

```shell
# You can also use wget
curl -X PATCH https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
PATCH https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id} HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PATCH','https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`PATCH /applicants/{applicant_id}`

Update the details of an [applicant profile](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).

> Body parameter

```json
{
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret"
}
```

<h3 id="update-an-applicant-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|applicant_id|path|[ApplicantId](#schemaapplicantid)|true|The applicant profile's unique identifier.|
|body|body|any|false|none|

> Example responses

> Applicant profile updated successfully

```json
{
  "id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret",
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="update-an-applicant-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Applicant profile updated successfully|[IdvApplicant](#schemaidvapplicant)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Anonymize an applicant

<a id="opIdanonymize_applicant"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/applicants/{applicant_id}/anonymize";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /applicants/{applicant_id}/anonymize`

Remove the personal data in an [applicant profile](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).

<h3 id="anonymize-an-applicant-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|applicant_id|path|[ApplicantId](#schemaapplicantid)|true|The applicant profile's unique identifier.|

> Example responses

> Personal data removed successfully

```json
{
  "id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7we"
    }
  }
}
```

<h3 id="anonymize-an-applicant-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Personal data removed successfully|[IdvApplicant](#schemaidvapplicant)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-identity-verification">Identity Verification</h1>

## Create an identity verification and attempt

<a id="opIdcreate_and_start_identity_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/create-and-open-idv \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/create-and-open-idv HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "declared_data": {
    "name": "Hannah Bret"
  },
  "redirect_url": "https://myweb.site?query-param=hello"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/create-and-open-idv',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/create-and-open-idv',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/create-and-open-idv', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/create-and-open-idv', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/create-and-open-idv");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/create-and-open-idv", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/create-and-open-idv";
      
      string json = @"{
  ""declared_data"": {
    ""name"": ""Hannah Bret""
  },
  ""redirect_url"": ""https://myweb.site?query-param=hello""
}";
      IdvIdentityVerificationHelper content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(IdvIdentityVerificationHelper content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(IdvIdentityVerificationHelper content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /create-and-open-idv`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) and an initial attempt.

If successful, you receive a `201 Created` response and the identity verification resource, which contains the attempt URL.

Ensure you use your identity verification [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities#Configuration).

> Body parameter

```json
{
  "declared_data": {
    "name": "Hannah Bret"
  },
  "redirect_url": "https://myweb.site?query-param=hello"
}
```

<h3 id="create-an-identity-verification-and-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[IdvIdentityVerificationHelper](#schemaidvidentityverificationhelper)|true|none|

> Example responses

> Identity verification and attempt created successfully

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "status": "pending",
  "response_codes": [],
  "risk_labels": [],
  "certifications": [],
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  },
  "documents": [],
  "redirect_url": "https://myweb.site?query-param=hello",
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "verification_url": {
      "href": "https://idv.checkout.com/4hryu5cei5/"
    }
  }
}
```

<h3 id="create-an-identity-verification-and-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Identity verification and attempt created successfully|Inline|

<h3 id="create-an-identity-verification-and-attempt-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|false|read-only|The identity verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Create an identity verification

<a id="opIdcreate_identity_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/identity-verifications \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/identity-verifications HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/identity-verifications',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/identity-verifications', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/identity-verifications', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/identity-verifications", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications";
      
      string json = @"{
  ""applicant_id"": ""aplt_tkoi5db4hryu5cei5vwoabr7we"",
  ""declared_data"": {
    ""name"": ""Hannah Bret""
  }
}";
      IdvIdentityVerification content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(IdvIdentityVerification content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(IdvIdentityVerification content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /identity-verifications`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) linked to an applicant.

If successful, you receive a `201 Created` response with the identity verification resource.

Ensure you use your identity verification [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities#Configuration).

> Body parameter

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret"
  }
}
```

<h3 id="create-an-identity-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[IdvIdentityVerification](#schemaidvidentityverification)|true|none|

> Example responses

> Identity verification created successfully

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "pending",
  "response_codes": [],
  "risk_labels": [],
  "certifications": [],
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  },
  "documents": [
    {
      "full_name": "Hannah Bret",
      "birth_date": "1934-10-02",
      "document_type": "ID",
      "document_issuing_country": "US",
      "front_image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/tight_crops/FRA-I5-Front-bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921906596.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163228Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87d8467ab92cbad7c00171af28e613d495f3ff441ce0ea59dd013d68abc50555"
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_lkoi5db4hryu5cei5vwoabqere"
    }
  }
}
```

> Bad Request

```json
{
  "error_type": "request_invalid",
  "error_codes": [
    "declared_data__name__required"
  ]
}
```

> 422 Response

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "organization__no_configuration"
  ]
}
```

<h3 id="create-an-identity-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Identity verification created successfully|Inline|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="create-an-identity-verification-responseschema">Response Schema</h3>

Status Code **201**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|false|read-only|The identity verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an identity verification

<a id="opIdretrieve_identity_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /identity-verifications/{identity_verification_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of an existing [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).

<h3 id="get-an-identity-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|

> Example responses

> Identity verification retrieved successfully

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "Hannah Bret",
    "birth_date": "1934-10-02"
  },
  "verification_policy_version": "2.1",
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "high",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1934-10-02",
    "email": "hannah.bret@example.com",
    "phone_number": {
      "country_code": "+1",
      "number": "5555550102"
    },
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "Hannah Bret",
      "birth_date": "1934-10-02",
      "document_type": "ID",
      "document_issuing_country": "US",
      "address": "123 Main Street, London, SW1A 1AA",
      "front_image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/tight_crops/FRA-I5-Front-bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921906596.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163228Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87d8467ab92cbad7c00171af28e613d495f3ff441ce0ea59dd013d68abc50555"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7ou"
    }
  }
}
```

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "declined",
  "response_codes": [
    {
      "code": 61310,
      "summary": "document_front_not_captured"
    },
    {
      "code": 62102,
      "summary": "document_not_accepted"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected",
    "risky_document_format"
  ],
  "certifications": [],
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1934-10-02"
  },
  "documents": [
    {
      "full_name": "Hannah Bret",
      "birth_date": "1934-10-02",
      "document_type": "ID",
      "document_issuing_country": "US",
      "front_image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/tight_crops/FRA-I5-Front-bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921906596.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163228Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87d8467ab92cbad7c00171af28e613d495f3ff441ce0ea59dd013d68abc50555"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7ou"
    }
  }
}
```

<h3 id="get-an-identity-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Identity verification retrieved successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="get-an-identity-verification-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|false|read-only|The identity verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Anonymize an identity verification

<a id="opIdanonymize_identity_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/anonymize";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /identity-verifications/{identity_verification_id}/anonymize`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Remove the personal data in an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).

<h3 id="anonymize-an-identity-verification-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|

> Example responses

> Personal data removed successfully

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "approved"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "certifications": [],
  "declared_data": {
    "name": "Hannah Bret"
  },
  "documents": [
    {
      "full_name": "Hannah Bret",
      "birth_date": "1934-10-02",
      "document_type": "ID",
      "document_issuing_country": "US",
      "front_image_signed_url": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/tight_crops/FRA-I5-Front-bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921906596.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163228Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=87d8467ab92cbad7c00171af28e613d495f3ff441ce0ea59dd013d68abc50555"
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we"
    },
    "applicant": {
      "href": "https://identity-verification.checkout.com/applicants/aplt_tkoi5db4hryu5cei5vwoabr7ou"
    }
  }
}
```

> Unprocessable Content

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "organization__no_configuration"
  ]
}
```

<h3 id="anonymize-an-identity-verification-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Personal data removed successfully|Inline|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Unprocessable Content|[IdvIdentityVerificationError](#schemaidvidentityverificationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="anonymize-an-identity-verification-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|false|read-only|The identity verification's unique identifier.|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Create an identity verification attempt

<a id="opIdcreate_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "redirect_url": "https://myweb.site?query-param=hello"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts";
      
      string json = @"{
  ""redirect_url"": ""https://myweb.site?query-param=hello""
}";
      IdvAttemptRequest content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(IdvAttemptRequest content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(IdvAttemptRequest content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /identity-verifications/{identity_verification_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) attempt.

If you've already created an attempt for this verification, the [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes) must be one of the following:

- `created`
- `pending`
- `capture_in_progress`
- `retry_required`

If you create a new attempt while the status is any other value, you receive a `409 Conflict` response.

> Body parameter

```json
{
  "redirect_url": "https://myweb.site?query-param=hello"
}
```

<h3 id="create-an-identity-verification-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|
|body|body|[IdvAttemptRequest](#schemaidvattemptrequest)|false|none|

> Example responses

> Identity verification attempt created successfully

```json
{
  "id": "iatp_tkoi5db4hryu5cei5vwoabrPoQ",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "phone_number": {
    "country_code": "+1",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_document_issuing_country": "FR",
    "pre_selected_document_type": "ID",
    "pre_selected_language": "en-US"
  },
  "applicant_session_information": {
    "ip_address": "123.123.123.01"
  },
  "redirect_url": "https://myweb.site?query-param=hello",
  "status": "pending_redirection",
  "response_codes": [],
  "_links": {
    "verification_url": {
      "href": "https://idv.checkout.com/4hryu5cei5/"
    },
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/identity-verifications/idv_01j58p8rw1hvterhqt66xn6js2/attempts/iatp_tkoi5db4hryu5cei5vwoabrPoQ"
    }
  }
}
```

<h3 id="create-an-identity-verification-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Identity verification attempt created successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Conflict|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="create-an-identity-verification-attempt-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|status|capture_aborted|
|status|capture_in_progress|
|status|checks_inconclusive|
|status|checks_in_progress|
|status|completed|
|status|expired|
|status|pending_redirection|
|status|capture_refused|
|status|terminated|
|pre_selected_document_type|Driving licence|
|pre_selected_document_type|ID|
|pre_selected_document_type|Other|
|pre_selected_document_type|Passport|
|pre_selected_document_type|Residence Permit|
|pre_selected_document_type|Travel Document|
|pre_selected_document_type|Visa|
|initial_device|desktop|
|initial_device|mobile|
|document_type|Driving licence|
|document_type|ID|
|document_type|Other|
|document_type|Passport|
|document_type|Residence Permit|
|document_type|Travel Document|
|document_type|Visa|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get identity verification attempts

<a id="opIdlist_attempts"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /identity-verifications/{identity_verification_id}/attempts`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get all the attempts for a specific [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).

<h3 id="get-identity-verification-attempts-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|
|skip|query|integer|false|The number of attempts to skip.|
|limit|query|integer|false|The maximum number of attempts to return.|

> Example responses

> Identity verification attempts retrieved successfully

```json
{
  "total_count": 2,
  "skip": 10,
  "limit": 10,
  "data": [
    {
      "id": "iatp_tkoi5db4hryu5cei5vwoabrPoQ",
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z",
      "status": "completed",
      "response_codes": [],
      "phone_number": {
        "country_code": "+1",
        "number": "5555550102"
      },
      "client_information": {
        "pre_selected_residence_country": "FR",
        "pre_selected_document_issuing_country": "FR",
        "pre_selected_document_type": "Passport",
        "pre_selected_language": "en-US"
      },
      "applicant_session_information": {
        "ip_address": "123.123.123.01",
        "number_of_sessions": 3,
        "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
        "initial_device": "mobile",
        "selected_documents": [
          {
            "country": "FR",
            "document_type": "Passport"
          }
        ]
      },
      "redirect_url": "https://myweb.site?query-param=hello",
      "_links": {
        "self": {
          "href": "https://identity-verification.sandbox.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts/iatp_tkoi5db4hryu5cei5vwoabrPoQ"
        },
        "verification_url": {
          "href": "https://idv.checkout.com/4hryu5cei5/"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts?skip=10&limit=10"
    },
    "next": {
      "href": "https://identity-verification.sandbox.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts?skip=20&limit=10"
    },
    "previous": {
      "href": "https://identity-verification.sandbox.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts?skip=0&limit=10"
    }
  }
}
```

<h3 id="get-identity-verification-attempts-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Identity verification attempts retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-identity-verification-attempts-responseschema">Response Schema</h3>

Status Code **200**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» total_count|integer|true|none|The total number of attempts.|
|» skip|integer|true|none|The number of attempts you want to skip, to help you view the relevant attempt. <br/>Example – There are 10 attempts. If you provide `6`, the first six attempts are skipped.|
|» limit|integer|true|none|The maximum number of attempts you want returned. <br/>Example – There are 10 attempts. If you set `limit` to `5`, but skip the first six, four attempts are returned.|
|» data|[allOf]|true|none|The details of the attempt.|
|»» id|[IdvAttemptId](#schemaidvattemptid)|true|read-only|The unique identifier for the attempt.|
|»» redirect_url|string|true|none|The URL to redirect the applicant to after the attempt.|
|»» status|[IdvAttemptStatuses](#schemaidvattemptstatuses)|true|read-only|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|
|»» response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|»»» code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»»» summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|»» phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|»»» country_code|[IdvPhonePrefix](#schemaidvphoneprefix)|true|none|The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).|
|»»» number|[IdvDomesticPhoneNumber](#schemaidvdomesticphonenumber)|true|none|The applicant's mobile number, without the country code.|
|»» client_information|[IdvClientInformation](#schemaidvclientinformation)|false|none|The applicant's details.|
|»»» pre_selected_residence_country|string|false|none|The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|»»» pre_selected_document_issuing_country|string|false|none|The country that issued the applicant's identity document. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|»»» pre_selected_document_type|[IdvDocumentTypes](#schemaidvdocumenttypes)|false|none|The type of identity document the applicant uses for the attempt.|
|»»» pre_selected_language|string(IETF BCP 47 language tag)|false|none|The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag|
|»» applicant_session_information|[IdvApplicantSessionInformation](#schemaidvapplicantsessioninformation)|true|none|The details of the attempt.|
|»»» ip_address|string|false|none|The applicant's IP address during the attempt.|
|»»» number_of_sessions|integer|false|read-only|The number of sessions the applicant opened during the attempt.|
|»»» user_agent|string|false|read-only|The user agent of the browser the applicant used during the attempt.|
|»»» initial_device|[IdvInitialDevices](#schemaidvinitialdevices)|false|read-only|The type of device the applicant used to start the attempt.|
|»»» selected_documents|[[IdvSelectedDocument](#schemaidvselecteddocument)]|false|read-only|The documents the applicant selected in order.|
|»»»» country|[IdvCountryCode](#schemaidvcountrycode)(ISO 3166-1 alpha-2)|false|none|The applicant's nationality. <br/>Standard – [ISO alpha-2 country code](https://www.checkout.com/docs/developer-resources/testing/codes/country-codes) <br/>Example – `FR`|
|»»»» document_type|[IdvDocumentTypes](#schemaidvdocumenttypes)|false|none|The type of identity document.|
|» _links|any|true|read-only|The details of links to the previous, current, and next resources.|

*allOf*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|read-only|The details of links related to the resource.|
|»»» self|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the resource.|
|»»»» href|string(uri)|true|none|none|

*and*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|read-only|none|
|»»» next|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|
|»»»» href|string(uri)|true|none|none|

*and*

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|read-only|none|
|»»» previous|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|capture_aborted|
|status|capture_in_progress|
|status|checks_inconclusive|
|status|checks_in_progress|
|status|completed|
|status|expired|
|status|pending_redirection|
|status|capture_refused|
|status|terminated|
|pre_selected_document_type|Driving licence|
|pre_selected_document_type|ID|
|pre_selected_document_type|Other|
|pre_selected_document_type|Passport|
|pre_selected_document_type|Residence Permit|
|pre_selected_document_type|Travel Document|
|pre_selected_document_type|Visa|
|initial_device|desktop|
|initial_device|mobile|
|document_type|Driving licence|
|document_type|ID|
|document_type|Other|
|document_type|Passport|
|document_type|Residence Permit|
|document_type|Travel Document|
|document_type|Visa|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get an identity verification attempt

<a id="opIdget_attempt"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /identity-verifications/{identity_verification_id}/attempts/{attempt_id}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of a specific attempt for an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).

<h3 id="get-an-identity-verification-attempt-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|
|attempt_id|path|[IdvAttemptId](#schemaidvattemptid)|true|The attempt's unique identifier.|

> Example responses

> Identity verification attempt retrieved successfully

```json
{
  "id": "iatp_tkoi5db4hryu5cei5vwoabrPoQ",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "redirect_url": "https://myweb.site?query-param=hello",
  "status": "capture_in_progress",
  "phone_number": {
    "country_code": "+1",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_document_issuing_country": "FR",
    "pre_selected_document_type": "Passport",
    "pre_selected_language": "en-US"
  },
  "applicant_session_information": {
    "ip_address": "123.123.123.01",
    "number_of_sessions": 3,
    "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
    "initial_device": "mobile",
    "selected_documents": [
      {
        "country": "FR",
        "document_type": "Passport"
      }
    ]
  },
  "response_codes": [],
  "_links": {
    "self": {
      "href": "https://identity-verification.sandbox.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts/iatp_tkoi5db4hryu5cei5vwoabraio"
    },
    "verification_url": {
      "href": "https://idv.checkout.com/4hryu5cei5/"
    }
  }
}
```

<h3 id="get-an-identity-verification-attempt-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Identity verification attempt retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<h3 id="get-an-identity-verification-attempt-responseschema">Response Schema</h3>

#### Enumerated Values

|Property|Value|
|---|---|
|status|capture_aborted|
|status|capture_in_progress|
|status|checks_inconclusive|
|status|checks_in_progress|
|status|completed|
|status|expired|
|status|pending_redirection|
|status|capture_refused|
|status|terminated|
|pre_selected_document_type|Driving licence|
|pre_selected_document_type|ID|
|pre_selected_document_type|Other|
|pre_selected_document_type|Passport|
|pre_selected_document_type|Residence Permit|
|pre_selected_document_type|Travel Document|
|pre_selected_document_type|Visa|
|initial_device|desktop|
|initial_device|mobile|
|document_type|Driving licence|
|document_type|ID|
|document_type|Other|
|document_type|Passport|
|document_type|Residence Permit|
|document_type|Travel Document|
|document_type|Visa|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get identity verification attempt assets

<a id="opIdget_identity_verification_attempt_assets"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the assets (face images, videos, and document images) captured during an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) attempt.

Videos are not exposed by default. Contact your account manager to enable this feature.

Results are paginated. Use the `skip` and `limit` query parameters to navigate through pages.

<h3 id="get-identity-verification-attempt-assets-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|
|attempt_id|path|[IdvAttemptId](#schemaidvattemptid)|true|The attempt's unique identifier.|
|skip|query|integer|false|The number of assets to skip.|
|limit|query|integer|false|The maximum number of assets to return.|

> Example responses

> Identity verification attempt assets retrieved successfully

```json
{
  "total_count": 4,
  "skip": 0,
  "limit": 10,
  "data": [
    {
      "type": "face_image",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/face_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    },
    {
      "type": "face_video",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/face_video.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    },
    {
      "type": "document_front_image",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/document_front.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    },
    {
      "type": "document_back_image",
      "_links": {
        "asset_url": {
          "href": "https://storage-b.env.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/document_back.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=3600"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts/iatp_tkoi5db4hryu5cei5vwoabrPoQ/assets"
    },
    "next": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts/iatp_tkoi5db4hryu5cei5vwoabrPoQ/assets?..."
    },
    "previous": {
      "href": "https://identity-verification.checkout.com/identity-verifications/idv_tkoi5db4hryu5cei5vwoabr7we/attempts/iatp_tkoi5db4hryu5cei5vwoabrPoQ/assets?..."
    }
  }
}
```

<h3 id="get-identity-verification-attempt-assets-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Identity verification attempt assets retrieved successfully|[IdvAttemptAssets](#schemaidvattemptassets)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

## Get identity verification report

<a id="opIdpdf_identity_verification"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/identity-verifications/{identity_verification_id}/pdf-report";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /identity-verifications/{identity_verification_id}/pdf-report`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the report with the full details of an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) in PDF format.

The report is only available when the [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes) is `approved` or `declined`, and you've received an [Identity verification report created](https://www.checkout.com/docs/developer-resources/webhooks/webhook-event-types/identity_verification_report_created) webhook.

<h3 id="get-identity-verification-report-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|identity_verification_id|path|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|The identity verification's unique identifier.|

> Example responses

> Identity verification report retrieved successfully

```json
{
  "pdf_report": "https://www.example.com/reports/idv_tkoi5db4hryu5cei5vwoabr7we.pdf"
}
```

<h3 id="get-identity-verification-report-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Identity verification report retrieved successfully|Inline|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|503|[Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4)|Service Unavailable|None|

<h3 id="get-identity-verification-report-responseschema">Response Schema</h3>

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: identity-verification ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-digital-cards">Digital cards</h1>

## Get digital card details

<a id="opIdgetDigitalCard"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/digital-cards/{digitalCardId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/digital-cards/{digitalCardId}`

Retrieves the details for a digital card.

<h3 id="get-digital-card-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|digitalCardId|path|[IssuingDigitalCardId](#schemaissuingdigitalcardid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
  "card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "status": "active",
  "type": "secure_element",
  "scheme_card_id": "FAPLMC00002572060f2b2213c3964c44b218665ef9dd0d72",
  "requestor": {
    "id": "501103353211",
    "name": "APPLE PAY"
  },
  "device": {
    "id": "04431C7B514E80018306224737548585F11415F67C4E2EB6",
    "type": "iphone",
    "manufacturer": "ios",
    "brand": "string",
    "model": "string",
    "os_version": "13",
    "firmware_version": "string",
    "phone_number": "447505551234",
    "device_name": "John's iPhone",
    "device_parent_id": "string",
    "language": "string",
    "serial_number": "string",
    "time_zone": "string",
    "time_zone_setting": "network_set",
    "sim_serial_number": "string",
    "imei": "000000000000024",
    "network_operator": "string",
    "network_type": "wifi"
  },
  "provisioned_on": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/digital-cards/dcr_5ngxzsynm2me3oxf73esbhda6q",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}
```

<h3 id="get-digital-card-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Digital card retrieved successfully|[get-digital-card-response](#schemaget-digital-card-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Digital card not found|None|
|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|Not Acceptable|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|cko-request-id|string||none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

<h1 id="checkout-com-api-reference-issuing-disputes">Issuing disputes</h1>

## Create an Issuing dispute

<a id="opIdcreateDispute"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript
const inputBody = '{
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "reason": "4807",
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100,
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "justification": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/disputes',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/disputes',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/disputes', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/disputes', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/disputes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/disputes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/disputes";
      
      string json = @"{
  ""transaction_id"": ""trx_aayhhfwbdyxwcaeyhhfwbd4xga"",
  ""reason"": ""4807"",
  ""evidence"": [
    {
      ""name"": ""evidence.pdf"",
      ""content"": ""string"",
      ""description"": ""Goods were not received.""
    }
  ],
  ""amount"": 100,
  ""presentment_message_id"": ""msg_fa6psq242dcd6fdn5gifcq1491"",
  ""fraud_details"": {
    ""fraud_type"": ""card_not_present_fraud"",
    ""description"": ""Cardholder confirmed they made no online purchases on this date.""
  },
  ""justification"": ""string""
}";
      create-dispute-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(create-dispute-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(create-dispute-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/disputes`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Create and submit an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes) for an Issuing transaction. The dispute is sent to the card scheme for processing. For full guidance, see [Manage Issuing disputes](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes).
The transaction must already be cleared and not refunded.

> Body parameter

```json
{
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "reason": "4807",
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100,
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "justification": "string"
}
```

<h3 id="create-an-issuing-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|true|An idempotency key for safely retrying requests.|
|body|body|[create-dispute-request](#schemacreate-dispute-request)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}
```

<h3 id="create-an-issuing-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Dispute already exists for this transaction/presentment|[get-dispute-response](#schemaget-dispute-response)|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Dispute created successfully|[create-dispute-response](#schemacreate-dispute-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized Request|None|
|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|Not Acceptable|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Dispute is ineligble|[IssuingValidationError](#schemaissuingvalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|201|Cko-Request-Id|string||The unique identifier of the request|
|401|Cko-Request-Id|string||The unique identifier of the request|
|422|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:disputes-write )
</aside>

## Get an Issuing dispute

<a id="opIdgetDispute"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/disputes/{disputeId}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Retrieve the details of an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes).

<h3 id="get-an-issuing-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|disputeId|path|[IssuingDisputeId](#schemaissuingdisputeid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}
```

<h3 id="get-an-issuing-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Issuing dispute retrieved successfully|[get-dispute-response](#schemaget-dispute-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized Request|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Issuing dispute not found|None|
|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|Not Acceptable|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|
|default|Default|Issuing dispute response retrieved successfully|[get-dispute-response](#schemaget-dispute-response)|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|401|Cko-Request-Id|string||The unique identifier of the request|
|404|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:disputes-read )
</aside>

## Amend an Issuing dispute

<a id="opIdamendDispute"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript
const inputBody = '{
  "reason": "4853",
  "evidence": [
    {
      "name": "cardholder_signed_declaration.pdf",
      "content": "JVBERi0xLjQKJeLjz9M...",
      "description": "Signed cardholder declaration as requested by DR team."
    }
  ],
  "action_response": "Updated reason to 4853 as requested. New evidence meets scheme requirements."
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/amend";
      
      string json = @"{
  ""reason"": ""4853"",
  ""evidence"": [
    {
      ""name"": ""cardholder_signed_declaration.pdf"",
      ""content"": ""JVBERi0xLjQKJeLjz9M..."",
      ""description"": ""Signed cardholder declaration as requested by DR team.""
    }
  ],
  ""action_response"": ""Updated reason to 4853 as requested. New evidence meets scheme requirements.""
}";
      amend-dispute-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(amend-dispute-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(amend-dispute-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/disputes/{disputeId}/amend`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Amend an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes)
that has been blocked from proceeding. This endpoint is used when the dispute's submission
could not go through — either because the DR team requested changes before sending to the
card scheme, or because the card scheme returned the submission for a fixable reason (in
which case the DR team reviews the rejection and instructs the consumer via `action_details`).

This endpoint is only applicable when `status` is `action_required` and the `status_reason` is one of `chargeback_change_requested`, `chargeback_evidence_invalid_or_insufficient`, `escalation_change_requested`,`prearbitration_evidence_invalid_or_insufficient`. The `_links.amend`
link in the GET response is present whenever an amendment is required.

Check `action_details.instructions` in `GET /issuing/disputes/{id}` for the specific changes
required before calling this endpoint.

### Chargeback stage (`status_reason: chargeback_change_requested`, `chargeback_evidence_invalid_or_insufficient`)

Address changes required before the chargeback can proceed. This covers two scenarios:

- **issuing rejection:** The Disputes Resolution team reviews the submission and rejects providing corrective instructions via `action_details`.

- **Scheme rejection:** The card scheme returned the chargeback for a fixable reason.

### Escalation stage (`status_reason: escalation_change_requested`, `prearbitration_evidence_invalid_or_insufficient`)

Address changes required before the escalation (pre-arbitration or arbitration) can proceed.
The same two scenarios apply as at the chargeback stage. `reason_change_justification`
is **required** when changing the `reason` at this stage.

> Body parameter

```json
{
  "reason": "4853",
  "evidence": [
    {
      "name": "cardholder_signed_declaration.pdf",
      "content": "JVBERi0xLjQKJeLjz9M...",
      "description": "Signed cardholder declaration as requested by DR team."
    }
  ],
  "action_response": "Updated reason to 4853 as requested. New evidence meets scheme requirements."
}
```

<h3 id="amend-an-issuing-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|true|An idempotency key for safely retrying requests.|
|disputeId|path|[IssuingDisputeId](#schemaissuingdisputeid)|true|none|
|body|body|[amend-dispute-request](#schemaamend-dispute-request)|false|none|

> Example responses

> 200 Response

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}
```

<h3 id="amend-an-issuing-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Your corrections were accepted; the dispute continues processing.|[get-dispute-response](#schemaget-dispute-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized Request|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Issuing dispute not found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|This dispute is not in a state that accepts corrections (e.g. not action_required).|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request is missing required information — for example, `fraud_details` for a fraud reason code,
or `reason_change_justification` when changing the reason code at the escalation stage.|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|401|Cko-Request-Id|string||The unique identifier of the request|
|404|Cko-Request-Id|string||The unique identifier of the request|
|409|Cko-Request-Id|string||The unique identifier of the request|
|422|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:disputes-write )
</aside>

## Cancel an Issuing dispute

<a id="opIdcancelDispute"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel HTTP/1.1

Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript

const headers = {
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/cancel";
      
      
      await PostAsync(null, url);
      
    }

    /// Performs a POST Request
    public async Task PostAsync(undefined content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(undefined content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/disputes/{disputeId}/cancel`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Cancel an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes).
If you decide not to proceed with a dispute, you can cancel it either:
* While the dispute `status` is `processing` and `status_reason` is `chargeback_pending` or `chargeback_processed`
For more information, see <a href="https://www.checkout.com/docs/card-issuing/manage-issuing-transactions/manage-issuing-disputes#Cancel_a_dispute" target="_blank">Cancel a dispute</a>.

<h3 id="cancel-an-issuing-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|true|An idempotency key for safely retrying requests.|
|disputeId|path|[IssuingDisputeId](#schemaissuingdisputeid)|true|none|

> Example responses

<h3 id="cancel-an-issuing-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Issuing dispute cancellation requested successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized Request|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Issuing dispute not found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Issuing dispute cannot be canceled|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request missing required information|None|

<h3 id="cancel-an-issuing-dispute-responseschema">Response Schema</h3>

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||The unique identifier of the request|
|401|Cko-Request-Id|string||The unique identifier of the request|
|404|Cko-Request-Id|string||The unique identifier of the request|
|409|Cko-Request-Id|string||The unique identifier of the request|
|422|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:disputes-write )
</aside>

## Escalate an Issuing dispute

<a id="opIdescalateDispute"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate \
  -H 'Content-Type: application/json' \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate HTTP/1.1

Content-Type: application/json

Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript
const inputBody = '{
  "additional_evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100,
  "reason_change": {
    "reason": "4807",
    "justification": "string"
  },
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "justification": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/escalate";
      
      string json = @"{
  ""additional_evidence"": [
    {
      ""name"": ""evidence.pdf"",
      ""content"": ""string"",
      ""description"": ""Goods were not received.""
    }
  ],
  ""amount"": 100,
  ""reason_change"": {
    ""reason"": ""4807"",
    ""justification"": ""string""
  },
  ""fraud_details"": {
    ""fraud_type"": ""card_not_present_fraud"",
    ""description"": ""Cardholder confirmed they made no online purchases on this date.""
  },
  ""justification"": ""string""
}";
      escalate-dispute-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(escalate-dispute-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(escalate-dispute-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/disputes/{disputeId}/escalate`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Escalate an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes) to pre-arbitration or arbitration.

> Body parameter

```json
{
  "additional_evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100,
  "reason_change": {
    "reason": "4807",
    "justification": "string"
  },
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "justification": "string"
}
```

<h3 id="escalate-an-issuing-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|true|An idempotency key for safely retrying requests.|
|disputeId|path|[IssuingDisputeId](#schemaissuingdisputeid)|true|none|
|body|body|[escalate-dispute-request](#schemaescalate-dispute-request)|false|none|

> Example responses

<h3 id="escalate-an-issuing-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Issuing dispute escalation requested successfully|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized Request|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Issuing dispute not found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Issuing dispute cannot be escalated|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request missing required information|None|

<h3 id="escalate-an-issuing-dispute-responseschema">Response Schema</h3>

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|202|Cko-Request-Id|string||The unique identifier of the request|
|401|Cko-Request-Id|string||The unique identifier of the request|
|404|Cko-Request-Id|string||The unique identifier of the request|
|409|Cko-Request-Id|string||The unique identifier of the request|
|422|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:disputes-write )
</aside>

## Submit an Issuing dispute

<a id="opIdsubmitDispute"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: 7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a

```

```javascript
const inputBody = '{
  "reason": "4807",
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => '7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/disputes/{disputeId}/submit";
      
      string json = @"{
  ""reason"": ""4807"",
  ""evidence"": [
    {
      ""name"": ""evidence.pdf"",
      ""content"": ""string"",
      ""description"": ""Goods were not received.""
    }
  ],
  ""amount"": 100
}";
      submit-dispute-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(submit-dispute-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(submit-dispute-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/disputes/{disputeId}/submit`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Use the <a target="_blank" href="https://api-reference.checkout.com/tag/Issuing-disputes#operation/createDispute">Create an Issuing dispute</a> endpoint instead to create and submit a dispute in a single step.

You can also use the <a target="_blank" href="https://api-reference.checkout.com/tag/Issuing-disputes#operation/amendDispute">Amend</a> endpoint to submit changes if the dispute status is `action_required`.
This endpoint may still be used to re-submit after a rejected submission or to re-attempt an escalation; existing clients will receive advance communication when the new re-open flow is available.

> Body parameter

```json
{
  "reason": "4807",
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100
}
```

<h3 id="submit-an-issuing-dispute-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|true|An idempotency key for safely retrying requests.|
|disputeId|path|[IssuingDisputeId](#schemaissuingdisputeid)|true|none|
|body|body|[submit-dispute-request](#schemasubmit-dispute-request)|false|none|

> Example responses

> 200 Response

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}
```

<h3 id="submit-an-issuing-dispute-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Issuing dispute submitted successfully|[get-dispute-response](#schemaget-dispute-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized Request|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Issuing dispute not found|None|
|409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|Issuing dispute cannot be submitted|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Request missing required information|None|

### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|Cko-Request-Id|string||The unique identifier of the request|
|401|Cko-Request-Id|string||The unique identifier of the request|
|404|Cko-Request-Id|string||The unique identifier of the request|
|409|Cko-Request-Id|string||The unique identifier of the request|
|422|Cko-Request-Id|string||The unique identifier of the request|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:disputes-write )
</aside>

<h1 id="checkout-com-api-reference-out-of-band-authentication-simulator">Out-of-band authentication simulator</h1>

## Simulate an out-of-band (OOB) authentication request.

<a id="opIdsimulateOobAuthentication"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication HTTP/1.1

Content-Type: application/json
Accept: application/json

```

```javascript
const inputBody = '{
  "card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "transaction_details": {
    "last_four": "1234",
    "merchant_name": "Acme Ltd",
    "purchase_amount": 100,
    "purchase_currency": "USD"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/simulate/oob/authentication";
      
      string json = @"{
  ""card_id"": ""crd_fa6psq242dcd6fdn5gifcq1491"",
  ""transaction_details"": {
    ""last_four"": ""1234"",
    ""merchant_name"": ""Acme Ltd"",
    ""purchase_amount"": 100,
    ""purchase_currency"": ""USD""
  }
}";
      simulate-oob-authentication-request content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(simulate-oob-authentication-request content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(simulate-oob-authentication-request content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /issuing/simulate/oob/authentication`

Simulate a request to your back-end from an out-of-band (OOB) authentication provider.

> Body parameter

```json
{
  "card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "transaction_details": {
    "last_four": "1234",
    "merchant_name": "Acme Ltd",
    "purchase_amount": 100,
    "purchase_currency": "USD"
  }
}
```

<h3 id="simulate-an-out-of-band-(oob)-authentication-request.-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[simulate-oob-authentication-request](#schemasimulate-oob-authentication-request)|false|none|

> Example responses

> 422 Response

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}
```

<h3 id="simulate-an-out-of-band-(oob)-authentication-request.-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No content|None|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card not found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[IssuingValidationError](#schemaissuingvalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:card-management-read )
</aside>

<h1 id="checkout-com-api-reference-transactions">Transactions</h1>

## Get a list of transactions

<a id="opIdgetTransactions"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/transactions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/transactions HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/transactions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/transactions', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/transactions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/transactions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/transactions";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/transactions`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Returns a list of transactions based on the matching input parameters in reverse chronological order, with the most recent transactions shown first.

<h3 id="get-a-list-of-transactions-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|limit|query|integer(int32)|false|The maximum number of transactions returned (between 10-100). The default is 10.|
|skip|query|integer(int32)|false|The number of transactions to skip. The default is 0.|
|cardholder_id|query|[IssuingCardholderId](#schemaissuingcardholderid)|false|none|
|card_id|query|[IssuingCardId](#schemaissuingcardid)|false|none|
|entity_id|query|[IssuingEntityId](#schemaissuingentityid)|false|none|
|status|query|string|false|An optional filter for the transaction lifecycle status.|
|from|query|string(date-time)|false|An optional start date filter for transactions, in ISO 8601 format.|
|to|query|string(date-time)|false|An optional end date filter for transactions, in ISO 8601 format.|

#### Enumerated Values

|Parameter|Value|
|---|---|
|status|authorized|
|status|declined|
|status|canceled|
|status|cleared|
|status|refunded|
|status|disputed|

> Example responses

> 200 Response

```json
{
  "limit": 5,
  "skip": 10,
  "total_count": 100,
  "data": [
    {
      "id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
      "created_on": "2019-08-24T14:15:22Z",
      "status": "authorized",
      "transaction_type": "purchase",
      "client": {
        "id": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
      },
      "entity": {
        "id": "ent_fa6psq242dcd6fdn5gifcq1491"
      },
      "card": {
        "id": "crd_fa6psq242dcd6fdn5gifcq1491",
        "network": "mastercard"
      },
      "digital_card": {
        "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
        "wallet_type": "googlepay"
      },
      "cardholder": {
        "id": "crh_d3ozhf43pcq2xbldn2g45qnb44"
      },
      "amounts": {
        "total_held": {
          "amount": 100,
          "currency": "USD"
        },
        "total_authorized": {
          "amount": 100,
          "currency": "USD"
        },
        "total_reversed": {
          "amount": 100,
          "currency": "USD"
        },
        "total_cleared": {
          "amount": 100,
          "currency": "USD"
        },
        "total_refunded": {
          "amount": 100,
          "currency": "USD"
        }
      },
      "merchant": {
        "id": "(*)123456789",
        "name": "My Merchant",
        "city": "Paris",
        "state": "",
        "country_code": "FR",
        "category_code": "5331"
      },
      "reference_transaction": {
        "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
        "reference_type": "original_mit"
      },
      "messages": [
        {
          "id": "msg_fa6psq242dcd6fdn5gifcq1491",
          "initiator": "cardholder",
          "type": "authorization",
          "result": "declined",
          "is_relayed": true,
          "indicator": "incremental_preauthorization",
          "decline_reason": "expiry_date_invalid",
          "authorization_code": "03C0C0",
          "billing_amount": 100,
          "billing_currency": "USD",
          "transaction_amount": 100,
          "transaction_currency": "USD",
          "created_on": "2019-09-10T10:11:12Z"
        }
      ],
      "_links": {
        "self": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        },
        "card": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        },
        "cardholder": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        },
        "reference_transaction": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        }
      }
    }
  ]
}
```

<h3 id="get-a-list-of-transactions-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Transactions returned successfully.|[get-transactions-response](#schemaget-transactions-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Matching parameters not valid.|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-read )
</aside>

## Get a single transaction

<a id="opIdgetTransactionById"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/issuing/transactions/{transactionId}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /issuing/transactions/{transactionId}`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get the details of a transaction using its ID.

<h3 id="get-a-single-transaction-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|transactionId|path|[IssuingTransactionId](#schemaissuingtransactionid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "created_on": "2019-08-24T14:15:22Z",
  "status": "authorized",
  "transaction_type": "purchase",
  "client": {
    "id": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
  },
  "entity": {
    "id": "ent_fa6psq242dcd6fdn5gifcq1491"
  },
  "card": {
    "id": "crd_fa6psq242dcd6fdn5gifcq1491",
    "network": "mastercard"
  },
  "digital_card": {
    "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
    "wallet_type": "googlepay"
  },
  "cardholder": {
    "id": "crh_d3ozhf43pcq2xbldn2g45qnb44"
  },
  "amounts": {
    "total_held": {
      "amount": 100,
      "currency": "USD"
    },
    "total_authorized": {
      "amount": 100,
      "currency": "USD"
    },
    "total_reversed": {
      "amount": 100,
      "currency": "USD"
    },
    "total_cleared": {
      "amount": 100,
      "currency": "USD"
    },
    "total_refunded": {
      "amount": 100,
      "currency": "USD"
    }
  },
  "merchant": {
    "id": "(*)123456789",
    "name": "My Merchant",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331"
  },
  "reference_transaction": {
    "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
    "reference_type": "original_mit"
  },
  "messages": [
    {
      "id": "msg_fa6psq242dcd6fdn5gifcq1491",
      "initiator": "cardholder",
      "type": "authorization",
      "result": "declined",
      "is_relayed": true,
      "indicator": "incremental_preauthorization",
      "decline_reason": "expiry_date_invalid",
      "authorization_code": "03C0C0",
      "billing_amount": 100,
      "billing_currency": "USD",
      "transaction_amount": 100,
      "transaction_currency": "USD",
      "created_on": "2019-09-10T10:11:12Z"
    }
  ],
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "reference_transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}
```

<h3 id="get-a-single-transaction-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Issuing transaction retrieved successfully|[get-transaction-response](#schemaget-transaction-response)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Forbidden|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Transaction Not Found|None|
|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|Not Acceptable|None|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too Many Requests|None|
|default|Default|Issuing transaction response retrieved successfully|[get-transaction-response](#schemaget-transaction-response)|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: issuing:transactions-read )
</aside>

<h1 id="checkout-com-api-reference-card-metadata">Card metadata</h1>

## Get card metadata

<a id="opIdrequestCardMetadata"></a>

> Code samples

```go
// For more information please refer to https://github.com/checkout/checkout-sdk-go
import (
	"github.com/checkout/checkout-sdk-go"
	"github.com/checkout/checkout-sdk-go/configuration"
	"github.com/checkout/checkout-sdk-go/metadata"
	"github.com/checkout/checkout-sdk-go/metadata/sessions"
)

// API Keys
api, err := checkout.
			Builder().
			StaticKeys().
			WithSecretKey("secret_key").
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

// OAuth
api, err := checkout.
			Builder().
			OAuth().
			WithClientCredentials("client_id", "client_secret").
			WithScopes([]string{configuration.VaultCardMetadata}).
			WithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION
                        WithEnvironmentSubdomain("{prefix}"). // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.
			Build()
if err != nil {
	return nil, err
}

request := metadata.CardMetadataRequest{
	Source: sources.NewRequestCardSource("card_number"),
	Format: metadata.Basic,
}

response, err := api.Metadata.RequestCardMetadata(request)
if err != nil {
	return nil, err
}

return response, nil
```

`POST /metadata/card`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Returns a single metadata record for the card specified by the Primary Account Number (PAN), Bank Identification Number (BIN), token, or instrument supplied.

> Body parameter

```json
{
  "source": {
    "type": "card",
    "number": "4539467987109256"
  },
  "format": "basic"
}
```

<h3 id="get-card-metadata-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|body|body|[CardMetadataRequest](#schemacardmetadatarequest)|false|none|

> Example responses

> Metadata for the card number, BIN, token, or instrument ID provided

```json
{
  "bin": "45434720",
  "scheme": "visa",
  "local_schemes": [
    "cartes_bancaires"
  ],
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "currency": "MUR",
  "issuer": "STATE BANK OF MAURITIUS",
  "issuer_country": "MU",
  "issuer_country_name": "Mauritius",
  "is_combo_card": false,
  "product_id": "F",
  "product_type": "Visa Classic",
  "subproduct_id": "VA",
  "regulated_indicator": false,
  "is_reloadable_prepaid": false,
  "anonymous_prepaid_description": "Anonymous prepaid program and not AMLD5 compliant"
}
```

```json
{
  "bin": "45434720",
  "scheme": "visa",
  "local_schemes": [
    "cartes_bancaires"
  ],
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "currency": "MUR",
  "issuer": "STATE BANK OF MAURITIUS",
  "issuer_country": "MU",
  "issuer_country_name": "Mauritius",
  "product_id": "F",
  "product_type": "Visa Classic",
  "subproduct_id": "VA",
  "regulated_indicator": false,
  "is_reloadable_prepaid": false,
  "anonymous_prepaid_description": "Anonymous prepaid program and not AMLD5 compliant",
  "card_payouts": {
    "domestic_non_money_transfer": "not_supported",
    "cross_border_non_money_transfer": "standard",
    "domestic_gambling": "fast_funds",
    "cross_border_gambling": "unknown",
    "domestic_money_transfer": "unknown",
    "cross_border_money_transfer": "not_supported"
  }
}
```

> 422 Response

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}
```

<h3 id="get-card-metadata-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Metadata for the card number, BIN, token, or instrument ID provided|[CardMetadataResponse](#schemacardmetadataresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Card Metadata not found|None|
|415|[Unsupported Media Type](https://tools.ietf.org/html/rfc7231#section-6.5.13)|Unsupported Media Type|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent|[ValidationError](#schemavalidationerror)|
|500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error|None|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad Gateway|None|
|504|[Gateway Time-out](https://tools.ietf.org/html/rfc7231#section-6.6.5)|Gateway Timeout|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: vault:card-metadata ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-payment-context">Payment Context</h1>

## Request a Payment Context

<a id="opIdrequestAPaymentContext"></a>

> Code samples

```shell
# You can also use wget
curl -X POST https://{prefix}.api.sandbox.checkout.com/payment-contexts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Cko-Idempotency-Key: string' \
  -H 'Authorization: Bearer {access-token}'

```

```http
POST https://{prefix}.api.sandbox.checkout.com/payment-contexts HTTP/1.1

Content-Type: application/json
Accept: application/json
Cko-Idempotency-Key: string

```

```javascript
const inputBody = '{
  "source": {
    "type": "klarna",
    "account_holder": {
      "billing_address": {
        "country": "string"
      }
    }
  },
  "amount": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "capture": true,
  "customer": {
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671",
      "phone_verified": true
    },
    "email": "card.success@tabby.ai",
    "name": "string",
    "email_verified": true,
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500
    }
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "processing": {
    "plan": {
      "type": "MERCHANT_INITIATED_BILLING",
      "skip_shipping_address": true,
      "immutable_shipping_address": true
    },
    "discount_amount": 5,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "Acme Corporation",
    "locale": "en-US",
    "shipping_preference": "set_provided_address",
    "user_action": "pay_now",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ]
  },
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/fail",
  "items": [
    {
      "type": "string",
      "name": "Test item",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string"
    }
  ],
  "metadata": {
    "coupon_code": "NY2018"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Cko-Idempotency-Key':'string',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payment-contexts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Cko-Idempotency-Key' => 'string',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://{prefix}.api.sandbox.checkout.com/payment-contexts',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Cko-Idempotency-Key': 'string',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://{prefix}.api.sandbox.checkout.com/payment-contexts', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Cko-Idempotency-Key' => 'string',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://{prefix}.api.sandbox.checkout.com/payment-contexts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payment-contexts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Cko-Idempotency-Key": []string{"string"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://{prefix}.api.sandbox.checkout.com/payment-contexts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    
    /// Make a dummy request
    public async Task MakePostRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payment-contexts";
      
      string json = @"{
  ""source"": {
    ""type"": ""klarna"",
    ""account_holder"": {
      ""billing_address"": {
        ""country"": ""string""
      }
    }
  },
  ""amount"": 6540,
  ""currency"": ""USD"",
  ""payment_type"": ""Recurring"",
  ""capture"": true,
  ""customer"": {
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671"",
      ""phone_verified"": true
    },
    ""email"": ""card.success@tabby.ai"",
    ""name"": ""string"",
    ""email_verified"": true,
    ""summary"": {
      ""registration_date"": ""2023-05-01"",
      ""first_transaction_date"": ""2023-07-01"",
      ""last_payment_date"": ""2023-08-01"",
      ""total_order_count"": 15,
      ""last_payment_amount"": 500
    }
  },
  ""shipping"": {
    ""first_name"": ""John"",
    ""last_name"": ""Smith"",
    ""email"": ""john.smith@example.com"",
    ""address"": {
      ""address_line1"": ""123 High St."",
      ""address_line2"": ""Flat 456"",
      ""city"": ""London"",
      ""state"": ""str"",
      ""zip"": ""SW1A 1AA"",
      ""country"": ""GB""
    },
    ""phone"": {
      ""country_code"": ""+1"",
      ""number"": ""415 555 2671""
    },
    ""from_address_zip"": ""123456"",
    ""timeframe"": ""SameDay"",
    ""method"": ""BillingAddress"",
    ""delay"": 5
  },
  ""processing"": {
    ""plan"": {
      ""type"": ""MERCHANT_INITIATED_BILLING"",
      ""skip_shipping_address"": true,
      ""immutable_shipping_address"": true
    },
    ""discount_amount"": 5,
    ""shipping_amount"": 300,
    ""tax_amount"": 3000,
    ""invoice_id"": ""string"",
    ""brand_name"": ""Acme Corporation"",
    ""locale"": ""en-US"",
    ""shipping_preference"": ""set_provided_address"",
    ""user_action"": ""pay_now"",
    ""partner_customer_risk_data"": {
      ""key"": ""string"",
      ""value"": ""string""
    },
    ""custom_payment_method_ids"": [
      ""string""
    ],
    ""airline_data"": [
      {
        ""ticket"": {
          ""number"": ""045-21351455613"",
          ""issue_date"": ""2023-05-20"",
          ""issuing_carrier_code"": ""AI"",
          ""travel_package_indicator"": ""B"",
          ""travel_agency_name"": ""World Tours"",
          ""travel_agency_code"": ""01""
        },
        ""passenger"": [
          {
            ""first_name"": ""John"",
            ""last_name"": ""White"",
            ""date_of_birth"": ""1990-05-26"",
            ""address"": {
              ""country"": ""US""
            }
          }
        ],
        ""flight_leg_details"": [
          {
            ""flight_number"": ""101"",
            ""carrier_code"": ""BA"",
            ""class_of_travelling"": ""J"",
            ""departure_airport"": ""LHR"",
            ""departure_date"": ""2023-06-19"",
            ""departure_time"": ""15:30"",
            ""arrival_airport"": ""LAX"",
            ""stop_over_code"": ""x"",
            ""fare_basis_code"": ""SPRSVR""
          }
        ]
      }
    ],
    ""accommodation_data"": [
      {
        ""name"": ""The Sea View Hotel"",
        ""booking_reference"": ""HOTEL123"",
        ""check_in_date"": ""2023-06-20"",
        ""check_out_date"": ""2023-06-23"",
        ""address"": {
          ""address_line1"": ""123 Beach Road"",
          ""zip"": ""10001""
        },
        ""state"": ""FL"",
        ""country"": ""USA"",
        ""city"": ""Los Angeles"",
        ""number_of_rooms"": 2,
        ""guests"": [
          {
            ""first_name"": ""Jane"",
            ""last_name"": ""Doe"",
            ""date_of_birth"": ""1985-07-14""
          }
        ],
        ""room"": [
          {
            ""rate"": ""70"",
            ""number_of_nights_at_room_rate"": ""3""
          }
        ],
        ""property_phone"": [
          {
            ""country_code"": ""44"",
            ""number"": ""7123456789""
          }
        ],
        ""customer_service_phone"": [
          {
            ""country_code"": ""44"",
            ""number"": ""7123456789""
          }
        ]
      }
    ]
  },
  ""processing_channel_id"": ""pc_q4dbxom5jbgudnjzjpz7j2z6uq"",
  ""reference"": ""ORD-5023-4E89"",
  ""description"": ""Set of 3 masks"",
  ""success_url"": ""https://example.com/payments/success"",
  ""failure_url"": ""https://example.com/payments/fail"",
  ""items"": [
    {
      ""type"": ""string"",
      ""name"": ""Test item"",
      ""quantity"": 2,
      ""unit_price"": 50,
      ""reference"": ""858818ac"",
      ""total_amount"": 29000,
      ""tax_rate"": 2000,
      ""tax_amount"": 1000,
      ""discount_amount"": 1000,
      ""url"": ""string"",
      ""image_url"": ""string""
    }
  ],
  ""metadata"": {
    ""coupon_code"": ""NY2018""
  }
}";
      PaymentContext content = JsonConvert.DeserializeObject(json);
      await PostAsync(content, url);
      
      
    }

    /// Performs a POST Request
    public async Task PostAsync(PaymentContext content, string url)
    {
        //Serialize Object
        StringContent jsonContent = SerializeObject(content);

        //Execute POST request
        HttpResponseMessage response = await Client.PostAsync(url, jsonContent);
    }
    
    
    
    /// Serialize an object to Json
    private StringContent SerializeObject(PaymentContext content)
    {
        //Serialize Object
        string jsonObject = JsonConvert.SerializeObject(content);

        //Create Json UTF8 String Content
        return new StringContent(jsonObject, Encoding.UTF8, "application/json");
    }
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`POST /payment-contexts`

Send a Payment Context request.
<br><br><b>Note</b>: Successful Payment Context requests will always return a 201 response.

Effective August 2026, Payment Context is no longer supported for new integrations. New integration requests return a `405 Method Not Allowed` response. For new integrations, call the [Create a Payment Setup](https://api-reference.checkout.com/tag/Payment-Setups#operation/createAPaymentSetup) endpoint instead.

> Body parameter

```json
{
  "source": {
    "type": "klarna",
    "account_holder": {
      "billing_address": {
        "country": "string"
      }
    }
  },
  "amount": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "capture": true,
  "customer": {
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671",
      "phone_verified": true
    },
    "email": "card.success@tabby.ai",
    "name": "string",
    "email_verified": true,
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500
    }
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "processing": {
    "plan": {
      "type": "MERCHANT_INITIATED_BILLING",
      "skip_shipping_address": true,
      "immutable_shipping_address": true
    },
    "discount_amount": 5,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "Acme Corporation",
    "locale": "en-US",
    "shipping_preference": "set_provided_address",
    "user_action": "pay_now",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ]
  },
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/fail",
  "items": [
    {
      "type": "string",
      "name": "Test item",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string"
    }
  ],
  "metadata": {
    "coupon_code": "NY2018"
  }
}
```

<h3 id="request-a-payment-context-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|Cko-Idempotency-Key|header|string|false|An optional idempotency key for safely retrying payment requests|
|body|body|[PaymentContext](#schemapaymentcontext)|false|none|

> Example responses

> 201 Response

```json
{
  "id": "pct_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 0,
  "processed_on": "2019-08-24T14:15:22Z",
  "status": "Pending",
  "response_code": "2000",
  "response_summary": "Rejected",
  "available_payment_types": [
    {
      "payment_type": "Regular",
      "payment_plan": {
        "days_between_payments": 28,
        "total_number_of_payments": 5,
        "current_payment_number": 3,
        "expiry": "20251031",
        "name": "Subscription 1234",
        "start_date": "20260507",
        "amount": 1234
      }
    }
  ],
  "unavailable_payment_types": [
    {
      "payment_type": "Regular",
      "rejection_reason": "string",
      "payment_plan": {
        "days_between_payments": 28,
        "total_number_of_payments": 5,
        "current_payment_number": 3,
        "expiry": "20251031",
        "name": "Subscription 1234",
        "start_date": "20260507",
        "amount": 1234
      },
      "description": "string"
    }
  ],
  "partner_metadata": {
    "order_id": "test_order_123",
    "customer_id": "cus_123",
    "session_id": "feb0096d-8486-400d-89fa-2fa716b4521f",
    "client_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzA1ZWJjLWI4MTEtMzYzNy1hYTRjLTY2ZWNhMTg3NGYzZCJ9.eyJzZXNzaW9uX2lkIjoiY2RiNDI0MGQtMTdkYy01MjJkLWJlYjEtYjAyYjRlMzllYTdhIiwiYmFzZV91cmwiOiJodHRwczovL2pzLnBsYXlncm91bmQua2xhcm5hLmNvbS9ldS9rcCIsImRlc2lnbiI6ImtsYXJuYSIsImxhbmd1YWdlIjoiZW4iLCJwdXJjaGFzZV9jb3VudHJ5IjoiREUiLCJlbnZpcm9ubWVudCI6InBsYXlncm91bmQiLCJtZXJjaGFudF9uYW1lIjoiQ2hlY2tvdXQuY29tIiwic2Vzc2lvbl90eXBlIjoiUEFZTUVOVFMiLCJjbGllbnRfZXZlbnRfYmFzZV91cmwiOiJodHRwczovL2V1LnBsYXlncm91bmQua2xhcm5hZXZ0LmNvbSIsInNjaGVtZSI6dHJ1ZSwiZXhwZXJpbWVudHMiOlt7Im5hbWUiOiJrcC1jbGllbnQtb25lLXB1cmNoYXNlLWZsb3ciLCJ2YXJpYXRlIjoidmFyaWF0ZS0xIn0seyJuYW1lIjoia3AtY2xpZW50LXV0b3BpYS1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwYy0xay1zZXJ2aWNlIiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtc3RhdGljLXdpZGdldCIsInZhcmlhdGUiOiJpbmRleCIsInBhcmFtZXRlcnMiOnsiZHluYW1pYyI6InRydWUifX0seyJuYW1lIjoiaW4tYXBwLXNkay1uZXctaW50ZXJuYWwtYnJvd3NlciIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6Im5ldy1pbnRlcm5hbC1icm93c2VyLWVuYWJsZSJ9fSx7Im5hbWUiOiJrcC1jbGllbnQtdXRvcGlhLXNkay1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtd2Vidmlldy1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImluLWFwcC1zZGstY2FyZC1zY2FubmluZyIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6ImNhcmQtc2Nhbm5pbmctZW5hYmxlIn19XSwicmVnaW9uIjoiZXUiLCJvcmRlcl9hbW91bnQiOjIwMDAsIm9mZmVyaW5nX29wdHMiOjAsIm9vIjoiY3ciLCJ2ZXJzaW9uIjoidjEuMTAuMC0xNTkwLWczZWJjMzkwNyJ9.ZxThQVo5e0Fck1vwOQ-WWAr7Zw-dsiEhjd3CW-E5p8atUhnBhrzIs6WCBeOOv3ci2VvpykVnDw2qycCTA-7TpTq1wn_kPxxixDQnYJYJzrZMoUhPLZo5pfy2a1S_t2owEQks0THRzu2wRlZwCN4ewDnVqsut60X4r3B92cJENIDtEC4Fs55CjFEmYUtsLXSspNLKvpZe2zg4O_M5yjH7XsBs5YJalZLexf4545G5vJrmVHgiA322mbgWC7BH0IU1A-ql5sFvs190_cjGaLsAvrkh9CVczUPy3X-jr3A5z1YRVfywPpvwKFWL8GZtgrdUZmgiU5_8ZZLkEPzrSucHrQ"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payment-contexts/pct_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}
```

<h3 id="request-a-payment-context-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|Payment Context Created.|[PaymentContextResponse](#schemapaymentcontextresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|405|[Method Not Allowed](https://tools.ietf.org/html/rfc7231#section-6.5.5)|Method Not Allowed. Not supported for creating new integrations on this resource.|None|
|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Invalid data was sent.|[ValidationError](#schemavalidationerror)|
|429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|Too many requests or duplicate request detected.|Inline|
|502|[Bad Gateway](https://tools.ietf.org/html/rfc7231#section-6.6.3)|Bad gateway|None|

<h3 id="request-a-payment-context-responseschema">Response Schema</h3>

Status Code **429**

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» request_id|string|false|none|none|
|» error_type|string|false|none|none|
|» error_codes|[string]|false|none|none|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway gateway:payment-contexts ), ApiSecretKey
</aside>

## Get Payment Context details

<a id="opIdgetPaymentContext"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id} HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}', headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payment-contexts/{id}";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /payment-contexts/{id}`

Returns all the Payment Context details.

<h3 id="get-payment-context-details-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|id|path|[PaymentContextId](#schemapaymentcontextid)|true|none|

> Example responses

> 200 Response

```json
{
  "id": "pct_y3oqhf46pyzuxjbcn2giaqnb44",
  "status": "Approved",
  "payment_request": {
    "source": {
      "type": "klarna",
      "account_holder": {
        "billing_address": {
          "country": "string"
        }
      }
    },
    "amount": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "capture": true,
    "customer": {
      "email": "johnsmith@example.com",
      "name": "John Smith"
    },
    "shipping": {
      "first_name": "John",
      "last_name": "Smith",
      "email": "john.smith@example.com",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "from_address_zip": "123456",
      "timeframe": "SameDay",
      "method": "BillingAddress",
      "delay": 5
    },
    "processing": {
      "plan": {
        "type": "MERCHANT_INITIATED_BILLING",
        "skip_shipping_address": true,
        "immutable_shipping_address": true
      },
      "discount_amount": 5,
      "shipping_amount": 300,
      "tax_amount": 3000,
      "invoice_id": "string",
      "brand_name": "Acme Corporation",
      "locale": "en-US",
      "shipping_preference": "set_provided_address",
      "user_action": "pay_now",
      "partner_customer_risk_data": {
        "key": "string",
        "value": "string"
      },
      "custom_payment_method_ids": [
        "string"
      ],
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ]
    },
    "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "items": [
      {
        "type": "string",
        "name": "Test item",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "discount_amount": 1000,
        "url": "string",
        "image_url": "string"
      }
    ],
    "metadata": {
      "coupon_code": "NY2018"
    }
  },
  "partner_metadata": {
    "order_id": "test_order_123",
    "customer_id": "cus_123",
    "session_id": "feb0096d-8486-400d-89fa-2fa716b4521f",
    "client_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzA1ZWJjLWI4MTEtMzYzNy1hYTRjLTY2ZWNhMTg3NGYzZCJ9.eyJzZXNzaW9uX2lkIjoiY2RiNDI0MGQtMTdkYy01MjJkLWJlYjEtYjAyYjRlMzllYTdhIiwiYmFzZV91cmwiOiJodHRwczovL2pzLnBsYXlncm91bmQua2xhcm5hLmNvbS9ldS9rcCIsImRlc2lnbiI6ImtsYXJuYSIsImxhbmd1YWdlIjoiZW4iLCJwdXJjaGFzZV9jb3VudHJ5IjoiREUiLCJlbnZpcm9ubWVudCI6InBsYXlncm91bmQiLCJtZXJjaGFudF9uYW1lIjoiQ2hlY2tvdXQuY29tIiwic2Vzc2lvbl90eXBlIjoiUEFZTUVOVFMiLCJjbGllbnRfZXZlbnRfYmFzZV91cmwiOiJodHRwczovL2V1LnBsYXlncm91bmQua2xhcm5hZXZ0LmNvbSIsInNjaGVtZSI6dHJ1ZSwiZXhwZXJpbWVudHMiOlt7Im5hbWUiOiJrcC1jbGllbnQtb25lLXB1cmNoYXNlLWZsb3ciLCJ2YXJpYXRlIjoidmFyaWF0ZS0xIn0seyJuYW1lIjoia3AtY2xpZW50LXV0b3BpYS1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwYy0xay1zZXJ2aWNlIiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtc3RhdGljLXdpZGdldCIsInZhcmlhdGUiOiJpbmRleCIsInBhcmFtZXRlcnMiOnsiZHluYW1pYyI6InRydWUifX0seyJuYW1lIjoiaW4tYXBwLXNkay1uZXctaW50ZXJuYWwtYnJvd3NlciIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6Im5ldy1pbnRlcm5hbC1icm93c2VyLWVuYWJsZSJ9fSx7Im5hbWUiOiJrcC1jbGllbnQtdXRvcGlhLXNkay1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtd2Vidmlldy1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImluLWFwcC1zZGstY2FyZC1zY2FubmluZyIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6ImNhcmQtc2Nhbm5pbmctZW5hYmxlIn19XSwicmVnaW9uIjoiZXUiLCJvcmRlcl9hbW91bnQiOjIwMDAsIm9mZmVyaW5nX29wdHMiOjAsIm9vIjoiY3ciLCJ2ZXJzaW9uIjoidjEuMTAuMC0xNTkwLWczZWJjMzkwNyJ9.ZxThQVo5e0Fck1vwOQ-WWAr7Zw-dsiEhjd3CW-E5p8atUhnBhrzIs6WCBeOOv3ci2VvpykVnDw2qycCTA-7TpTq1wn_kPxxixDQnYJYJzrZMoUhPLZo5pfy2a1S_t2owEQks0THRzu2wRlZwCN4ewDnVqsut60X4r3B92cJENIDtEC4Fs55CjFEmYUtsLXSspNLKvpZe2zg4O_M5yjH7XsBs5YJalZLexf4545G5vJrmVHgiA322mbgWC7BH0IU1A-ql5sFvs190_cjGaLsAvrkh9CVczUPy3X-jr3A5z1YRVfywPpvwKFWL8GZtgrdUZmgiU5_8ZZLkEPzrSucHrQ"
  }
}
```

<h3 id="get-payment-context-details-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Payment Context retrieved successfully.|[PaymentContextDetails](#schemapaymentcontextdetails)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Payment Context not found.|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: Payment Context ), ApiSecretKey
</aside>

<h1 id="checkout-com-api-reference-payment-methods">Payment Methods</h1>

## Get available payment methods

<a id="opIdgetPaymentMethods"></a>

> Code samples

```shell
# You can also use wget
curl -X GET https://{prefix}.api.sandbox.checkout.com/payment-methods?processing_channel_id=pc_q4dbxom5jbgudnjzjpz7j2z6uq \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

```

```http
GET https://{prefix}.api.sandbox.checkout.com/payment-methods?processing_channel_id=pc_q4dbxom5jbgudnjzjpz7j2z6uq HTTP/1.1

Accept: application/json

```

```javascript

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://{prefix}.api.sandbox.checkout.com/payment-methods?processing_channel_id=pc_q4dbxom5jbgudnjzjpz7j2z6uq',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://{prefix}.api.sandbox.checkout.com/payment-methods',
  params: {
  'processing_channel_id' => 'string'
}, headers: headers

p JSON.parse(result)

```

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://{prefix}.api.sandbox.checkout.com/payment-methods', params={
  'processing_channel_id': 'pc_q4dbxom5jbgudnjzjpz7j2z6uq'
}, headers = headers)

print(r.json())

```

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://{prefix}.api.sandbox.checkout.com/payment-methods', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

```

```java
URL obj = new URL("https://{prefix}.api.sandbox.checkout.com/payment-methods?processing_channel_id=pc_q4dbxom5jbgudnjzjpz7j2z6uq");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

```

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://{prefix}.api.sandbox.checkout.com/payment-methods", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

/// <<summary>>
/// Example of Http Client
/// <</summary>>
public class HttpExample
{
    private HttpClient Client { get; set; }

    /// <<summary>>
    /// Setup http client
    /// <</summary>>
    public HttpExample()
    {
      Client = new HttpClient();
    }
    
    /// Make a dummy request
    public async Task MakeGetRequest()
    {
      string url = "https://{prefix}.api.sandbox.checkout.com/payment-methods";
      var result = await GetAsync(url);
    }

    /// Performs a GET Request
    public async Task GetAsync(string url)
    {
        //Start the request
        HttpResponseMessage response = await Client.GetAsync(url);

        //Validate result
        response.EnsureSuccessStatusCode();

    }
    
    
    
    
    /// Deserialize object from request response
    private async Task DeserializeObject(HttpResponseMessage response)
    {
        //Read body 
        string responseBody = await response.Content.ReadAsStringAsync();

        //Deserialize Body to object
        var result = JsonConvert.DeserializeObject(responseBody);
    }
}

```

`GET /payment-methods`

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Get a list of all available payment methods for a specific Processing Channel ID.

<h3 id="get-available-payment-methods-parameters">Parameters</h3>

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|processing_channel_id|query|string|true|none|

> Example responses

> 200 Response

```json
{
  "methods": [
    {
      "type": "accel",
      "partner_merchant_id": "Z7X8LKJ3PQR5N"
    }
  ]
}
```

<h3 id="get-available-payment-methods-responses">Responses</h3>

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Enabled payment methods retrieved successfully|[PaymentMethodsResponse](#schemapaymentmethodsresponse)|
|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Unauthorized|None|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Processing channel not found|None|

<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
OAuth ( Scopes: gateway ), ApiSecretKey
</aside>

# Schemas

<h2 id="tocS_Address">Address</h2>
<!-- backwards compatibility -->
<a id="schemaaddress"></a>
<a id="schema_Address"></a>
<a id="tocSaddress"></a>
<a id="tocsaddress"></a>

```json
{
  "address_line1": "123 High St.",
  "address_line2": "Flat 456",
  "city": "London",
  "state": "str",
  "zip": "SW1A 1AA",
  "country": "GB"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address_line1|string|false|none|The first line of the address.|
|address_line2|string|false|none|The second line of the address. <p/><br><br> For SEPA payments, this value has a maximum length of 10 characters.|
|city|string|false|none|The address city.|
|state|string|false|none|The state or province of the address country <a href="https://en.wikipedia.org/wiki/ISO_3166-2" target="_blank">ISO 3166-2 code</a> (for example: CA for California in the United States).|
|zip|string|false|none|The address zip or postal code.|
|country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|

<h2 id="tocS_AdvAddress">AdvAddress</h2>
<!-- backwards compatibility -->
<a id="schemaadvaddress"></a>
<a id="schema_AdvAddress"></a>
<a id="tocSadvaddress"></a>
<a id="tocsadvaddress"></a>

```json
{
  "address_line1": "123 Main Street",
  "address_line2": "Apt 4B",
  "city": "London",
  "state": "Greater London",
  "zip": "SW1A 1AA",
  "country": "GB"
}

```

The address extracted from the document.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address_line1|string|false|none|The first line of the address.|
|address_line2|string|false|none|The second line of the address.|
|city|string|false|none|The city or town.|
|state|string|false|none|The state, county, or province.|
|zip|string|false|none|The postal or ZIP code.|
|country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|

<h2 id="tocS_AdvAddressDocumentResult">AdvAddressDocumentResult</h2>
<!-- backwards compatibility -->
<a id="schemaadvaddressdocumentresult"></a>
<a id="schema_AdvAddressDocumentResult"></a>
<a id="tocSadvaddressdocumentresult"></a>
<a id="tocsadvaddressdocumentresult"></a>

```json
{
  "document_type": "utility_bill",
  "issuer": "EDF Energy",
  "full_names": [
    "Hannah Bret"
  ],
  "issue_date": "2024-01-15",
  "address": {
    "address_line1": "123 Main Street",
    "address_line2": "Apt 4B",
    "city": "London",
    "state": "Greater London",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

The result of the address document check.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|document_type|string|false|none|The type of address document submitted.|
|issuer|string|false|none|The issuer of the address document.|
|full_names|[string]|false|none|The full names of the people named on the document. This can contain more than one name, for example if the document lists joint account holders.|
|issue_date|string(date)|false|none|The date the document was issued.|
|address|[AdvAddress](#schemaadvaddress)|false|none|The address extracted from the document.|

<h2 id="tocS_AdvAddressDocumentVerification">AdvAddressDocumentVerification</h2>
<!-- backwards compatibility -->
<a id="schemaadvaddressdocumentverification"></a>
<a id="schema_AdvAddressDocumentVerification"></a>
<a id="tocSadvaddressdocumentverification"></a>
<a id="tocsadvaddressdocumentverification"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  }
}

```

### Properties

*None*

<h2 id="tocS_AdvAddressDocumentVerificationBase">AdvAddressDocumentVerificationBase</h2>
<!-- backwards compatibility -->
<a id="schemaadvaddressdocumentverificationbase"></a>
<a id="schema_AdvAddressDocumentVerificationBase"></a>
<a id="tocSadvaddressdocumentverificationbase"></a>
<a id="tocsadvaddressdocumentverificationbase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|false|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|false|none|Your configuration ID.|
|declared_data|[IdvDeclaredData](#schemaidvdeclareddata)|false|none|The personal details provided by the applicant.|

<h2 id="tocS_AdvAddressDocumentVerificationId">AdvAddressDocumentVerificationId</h2>
<!-- backwards compatibility -->
<a id="schemaadvaddressdocumentverificationid"></a>
<a id="schema_AdvAddressDocumentVerificationId"></a>
<a id="tocSadvaddressdocumentverificationid"></a>
<a id="tocsadvaddressdocumentverificationid"></a>

```json
"adv_tkoi5db4hryu5cei5vwoabr7we"

```

The address document verification's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The address document verification's unique identifier.|

<h2 id="tocS_AdvAddressDocumentVerificationOutput">AdvAddressDocumentVerificationOutput</h2>
<!-- backwards compatibility -->
<a id="schemaadvaddressdocumentverificationoutput"></a>
<a id="schema_AdvAddressDocumentVerificationOutput"></a>
<a id="tocSadvaddressdocumentverificationoutput"></a>
<a id="tocsadvaddressdocumentverificationoutput"></a>

```json
{
  "id": "adv_tkoi5db4hryu5cei5vwoabr7we",
  "status": "created",
  "address_document": {
    "document_type": "utility_bill",
    "issuer": "EDF Energy",
    "full_names": [
      "Hannah Bret"
    ],
    "issue_date": "2024-01-15",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  },
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[AdvAddressDocumentVerificationId](#schemaadvaddressdocumentverificationid)|true|none|The address document verification's unique identifier.|
|status|[AdvVerificationStatuses](#schemaadvverificationstatuses)|true|none|The address document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|
|address_document|[AdvAddressDocumentResult](#schemaadvaddressdocumentresult)|false|none|The result of the address document check.|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|none|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|risk_labels|[IdvRiskLabels](#schemaidvrisklabels)|false|none|One or more codes that provide more information about risks associated with the verification.|
|_links|[IdvIdentityVerificationLinks](#schemaidvidentityverificationlinks)|true|none|The details of links related to the resource.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[AdvAddressDocumentVerificationBase](#schemaadvaddressdocumentverificationbase)|false|none|none|

<h2 id="tocS_AdvAttemptAsset">AdvAttemptAsset</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptasset"></a>
<a id="schema_AdvAttemptAsset"></a>
<a id="tocSadvattemptasset"></a>
<a id="tocsadvattemptasset"></a>

```json
{
  "type": "document",
  "_links": {
    "asset_url": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of asset.|
|_links|object|true|none|none|
|» asset_url|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|document|

<h2 id="tocS_AdvAttemptAssets">AdvAttemptAssets</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptassets"></a>
<a id="schema_AdvAttemptAssets"></a>
<a id="tocSadvattemptassets"></a>
<a id="tocsadvattemptassets"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "type": "document",
      "_links": {
        "asset_url": {
          "href": "http://example.com"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of assets.|
|skip|integer|true|none|The number of assets you want to skip. <br/>Example – There are 10 assets. If you provide `6`, the first six assets are skipped.|
|limit|integer|true|none|The maximum number of assets you want returned. <br/>Example – There are 10 assets. If you set `limit` to `5`, but skip the first six, four assets are returned.|
|data|[[AdvAttemptAsset](#schemaadvattemptasset)]|true|none|The list of assets for the current page.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_AdvAttemptId">AdvAttemptId</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptid"></a>
<a id="schema_AdvAttemptId"></a>
<a id="tocSadvattemptid"></a>
<a id="tocsadvattemptid"></a>

```json
"adva_tkoi5db4hryu5cei5vwoabr7we"

```

The unique identifier for the address document verification attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The unique identifier for the address document verification attempt.|

<h2 id="tocS_AdvAttemptRequest">AdvAttemptRequest</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptrequest"></a>
<a id="schema_AdvAttemptRequest"></a>
<a id="tocSadvattemptrequest"></a>
<a id="tocsadvattemptrequest"></a>

```json
{
  "document": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|document|string(binary)|true|none|The address document image to upload.|

<h2 id="tocS_AdvAttemptResponse">AdvAttemptResponse</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptresponse"></a>
<a id="schema_AdvAttemptResponse"></a>
<a id="tocSadvattemptresponse"></a>
<a id="tocsadvattemptresponse"></a>

```json
{
  "id": "adva_tkoi5db4hryu5cei5vwoabr7we",
  "status": "checks_in_progress",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  },
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[AdvAttemptId](#schemaadvattemptid)|true|none|The unique identifier for the address document verification attempt.|
|status|[AdvAttemptStates](#schemaadvattemptstates)|true|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the address document verification attempt.|
|response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|_links|[IdvSelfLink](#schemaidvselflink)|true|none|The details of links related to the resource.|

<h2 id="tocS_AdvAttemptResponseList">AdvAttemptResponseList</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptresponselist"></a>
<a id="schema_AdvAttemptResponseList"></a>
<a id="tocSadvattemptresponselist"></a>
<a id="tocsadvattemptresponselist"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "id": "adva_tkoi5db4hryu5cei5vwoabr7we",
      "status": "checks_in_progress",
      "response_codes": [
        {
          "code": 10000,
          "summary": "document_front_not_captured"
        }
      ],
      "_links": {
        "self": {
          "href": "http://example.com"
        }
      },
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of attempts.|
|skip|integer|true|none|The number of attempts skipped.|
|limit|integer|true|none|The maximum number of attempts returned.|
|data|[[AdvAttemptResponse](#schemaadvattemptresponse)]|true|none|The details of the attempts.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_AdvAttemptStates">AdvAttemptStates</h2>
<!-- backwards compatibility -->
<a id="schemaadvattemptstates"></a>
<a id="schema_AdvAttemptStates"></a>
<a id="tocSadvattemptstates"></a>
<a id="tocsadvattemptstates"></a>

```json
"checks_in_progress"

```

The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the address document verification attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the address document verification attempt.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|checks_in_progress|
|*anonymous*|checks_inconclusive|
|*anonymous*|completed|
|*anonymous*|quality_checks_aborted|
|*anonymous*|quality_checks_in_progress|
|*anonymous*|terminated|

<h2 id="tocS_AdvVerificationStatuses">AdvVerificationStatuses</h2>
<!-- backwards compatibility -->
<a id="schemaadvverificationstatuses"></a>
<a id="schema_AdvVerificationStatuses"></a>
<a id="tocSadvverificationstatuses"></a>
<a id="tocsadvverificationstatuses"></a>

```json
"created"

```

The address document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The address document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|created|
|*anonymous*|quality_checks_in_progress|
|*anonymous*|checks_in_progress|
|*anonymous*|approved|
|*anonymous*|declined|
|*anonymous*|retry_required|
|*anonymous*|inconclusive|

<h2 id="tocS_DelegatedPaymentAllowance">DelegatedPaymentAllowance</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymentallowance"></a>
<a id="schema_DelegatedPaymentAllowance"></a>
<a id="tocSdelegatedpaymentallowance"></a>
<a id="tocsdelegatedpaymentallowance"></a>

```json
{
  "reason": "one_time",
  "max_amount": 10000,
  "currency": "USD",
  "merchant_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "checkout_session_id": "1PQrsT",
  "expires_at": "2025-10-09T07:20:50.52Z"
}

```

The spending constraints that define what the delegated payment token is authorized for.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reason|string|true|none|The reason for the allowance.|
|max_amount|integer|true|none|The maximum amount that can be charged using the delegated payment token.<br><br>Provide the amount in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="_blank">minor currency unit</a>.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO 4217 currency code</a>.|
|merchant_id|string|true|none|The unique identifier of the merchant that will process the payment.|
|checkout_session_id|string|true|none|The identifier of the checkout session associated with this delegated payment.|
|expires_at|string(date-time)|true|none|The expiry time of the delegated payment token, in RFC 3339 format. Must be a time in the future.|

#### Enumerated Values

|Property|Value|
|---|---|
|reason|one_time|

<h2 id="tocS_DelegatedPaymentBillingAddress">DelegatedPaymentBillingAddress</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymentbillingaddress"></a>
<a id="schema_DelegatedPaymentBillingAddress"></a>
<a id="tocSdelegatedpaymentbillingaddress"></a>
<a id="tocsdelegatedpaymentbillingaddress"></a>

```json
{
  "name": "John Doe",
  "line_one": "123 Fake St.",
  "line_two": "Unit 1",
  "city": "San Francisco",
  "state": "CA",
  "postal_code": "12345",
  "country": "US"
}

```

The customer billing address associated with the delegated payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|The full name of the customer.|
|line_one|string|true|none|The first line of the street address.|
|line_two|string|false|none|The second line of the street address.|
|city|string|true|none|The city of the billing address.|
|state|string|false|none|The state, county, province, or region of the billing address.|
|postal_code|string|true|none|The postal code or ZIP code of the billing address.|
|country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO 3166-1 alpha-2 country code</a>.|

<h2 id="tocS_DelegatedPaymentErrorResponse">DelegatedPaymentErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymenterrorresponse"></a>
<a id="schema_DelegatedPaymentErrorResponse"></a>
<a id="tocSdelegatedpaymenterrorresponse"></a>
<a id="tocsdelegatedpaymenterrorresponse"></a>

```json
{
  "type": "invalid_request",
  "code": "invalid_card",
  "message": "Missing/malformed field",
  "param": "$.payment_method.number"
}

```

The error response returned when a delegated payment request fails.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The error category.|
|code|string|false|none|A machine-readable error code identifying the specific error.|
|message|string|false|none|A human-readable description of the error.|
|param|string¦null|false|none|A JSONPath-style reference to the request field that caused the error, or null if not applicable.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|invalid_request|
|type|rate_limit_exceeded|
|type|processing_error|
|type|service_unavailable|

<h2 id="tocS_DelegatedPaymentMethodCard">DelegatedPaymentMethodCard</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymentmethodcard"></a>
<a id="schema_DelegatedPaymentMethodCard"></a>
<a id="tocSdelegatedpaymentmethodcard"></a>
<a id="tocsdelegatedpaymentmethodcard"></a>

```json
{
  "type": "card",
  "card_number_type": "fpan",
  "number": "4242424242424242",
  "exp_month": "11",
  "exp_year": "2026",
  "name": "Jane Doe",
  "cvc": "223",
  "cryptogram": "gXc5UCLnM6ckD7pjM1TdPA==",
  "eci_value": "07",
  "checks_performed": [
    "avs",
    "cvv",
    "ani",
    "auth0"
  ],
  "iin": "123456",
  "display_card_funding_type": "credit",
  "display_wallet_type": "wallet",
  "display_brand": "Visa",
  "display_last4": "4242",
  "metadata": {
    "issuing_bank": "temp"
  }
}

```

The card details for a delegated payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment method type.|
|card_number_type|string|true|none|The type of card number provided.<br><br>- `fpan` – a Funding Primary Account Number. The card number printed on the card.<br>- `network_token` – a provisioned network token that represents the underlying card.|
|number|string|true|none|The full card number.|
|exp_month|string|false|none|The card expiry month, in two-digit format (MM).|
|exp_year|string|false|none|The card expiry year, in four-digit format (YYYY).|
|name|string|false|none|The name of the cardholder as it appears on the card.|
|cvc|string|false|none|The card verification code (CVC/CVV).|
|cryptogram|string|false|none|The cryptogram associated with a network token transaction. Required when `card_number_type` is `network_token`.|
|eci_value|string|false|none|The Electronic Commerce Indicator (ECI) or Security Level Indicator (SLI) value for network token transactions.|
|checks_performed|[string]|false|none|A list of verification checks that have been performed on the card.|
|iin|string|false|none|The Issuer Identification Number (IIN), also known as the Bank Identification Number (BIN). This is typically the first 6 digits of the card number.|
|display_card_funding_type|string|false|none|The funding type of the card, used for display purposes.|
|display_wallet_type|string|false|none|The wallet type associated with the card, used for display purposes (for example, Apple Pay or Google Pay).|
|display_brand|string|false|none|The card brand, used for display purposes (for example, Visa, Mastercard).|
|display_last4|string|false|none|The last four digits of the card number, used for display purposes.|
|metadata|object|true|none|A set of key-value pairs containing additional payment method metadata.|
|» **additionalProperties**|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|
|card_number_type|fpan|
|card_number_type|network_token|
|display_card_funding_type|credit|
|display_card_funding_type|debit|
|display_card_funding_type|prepaid|

<h2 id="tocS_DelegatedPaymentRequest">DelegatedPaymentRequest</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymentrequest"></a>
<a id="schema_DelegatedPaymentRequest"></a>
<a id="tocSdelegatedpaymentrequest"></a>
<a id="tocsdelegatedpaymentrequest"></a>

```json
{
  "payment_method": {
    "type": "card",
    "card_number_type": "fpan",
    "number": "4242424242424242",
    "exp_month": "11",
    "exp_year": "2026",
    "name": "Jane Doe",
    "cvc": "223",
    "cryptogram": "gXc5UCLnM6ckD7pjM1TdPA==",
    "eci_value": "07",
    "checks_performed": [
      "avs",
      "cvv",
      "ani",
      "auth0"
    ],
    "iin": "123456",
    "display_card_funding_type": "credit",
    "display_wallet_type": "wallet",
    "display_brand": "Visa",
    "display_last4": "4242",
    "metadata": {
      "issuing_bank": "temp"
    }
  },
  "allowance": {
    "reason": "one_time",
    "max_amount": 10000,
    "currency": "USD",
    "merchant_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
    "checkout_session_id": "1PQrsT",
    "expires_at": "2025-10-09T07:20:50.52Z"
  },
  "billing_address": {
    "name": "John Doe",
    "line_one": "123 Fake St.",
    "line_two": "Unit 1",
    "city": "San Francisco",
    "state": "CA",
    "postal_code": "12345",
    "country": "US"
  },
  "risk_signals": [
    {
      "type": "card_testing",
      "score": 10,
      "action": "blocked"
    }
  ],
  "metadata": {
    "campaign": "q4"
  }
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The request body for creating a delegated payment token.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_method|[DelegatedPaymentMethodCard](#schemadelegatedpaymentmethodcard)|true|none|The card payment method details.|
|allowance|[DelegatedPaymentAllowance](#schemadelegatedpaymentallowance)|true|none|The spending constraints for the delegated payment token.|
|billing_address|[DelegatedPaymentBillingAddress](#schemadelegatedpaymentbillingaddress)|false|none|The customer billing address.|
|risk_signals|[[DelegatedPaymentRiskSignal](#schemadelegatedpaymentrisksignal)]|true|none|An array of risk assessment signals provided by the platform.|
|metadata|object|true|none|A set of key-value pairs to attach to the delegated payment request.<br><br>The `metadata` object only supports string values.|
|» **additionalProperties**|string|false|none|none|

<h2 id="tocS_DelegatedPaymentResponse">DelegatedPaymentResponse</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymentresponse"></a>
<a id="schema_DelegatedPaymentResponse"></a>
<a id="tocSdelegatedpaymentresponse"></a>
<a id="tocsdelegatedpaymentresponse"></a>

```json
{
  "id": "vt_abc123def456ghi789",
  "created": "2026-03-11T10:30:00Z",
  "metadata": {
    "psp": "checkout.com"
  }
}

```

The response returned when a delegated payment token is successfully created.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The unique identifier of the provisioned payment token.|
|created|string(date-time)|true|none|The date and time the token was created, in RFC 3339 format.|
|metadata|object|true|none|A set of key-value pairs containing response metadata.|
|» **additionalProperties**|string|false|none|none|

<h2 id="tocS_DelegatedPaymentRiskSignal">DelegatedPaymentRiskSignal</h2>
<!-- backwards compatibility -->
<a id="schemadelegatedpaymentrisksignal"></a>
<a id="schema_DelegatedPaymentRiskSignal"></a>
<a id="tocSdelegatedpaymentrisksignal"></a>
<a id="tocsdelegatedpaymentrisksignal"></a>

```json
{
  "type": "card_testing",
  "score": 10,
  "action": "blocked"
}

```

A risk assessment signal provided by the platform to support fraud decisioning.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of risk signal.|
|score|integer|true|none|The risk score associated with this signal.|
|action|string|true|none|The action taken based on the risk assessment.|

<h2 id="tocS_InventoryAdjustmentRequest">InventoryAdjustmentRequest</h2>
<!-- backwards compatibility -->
<a id="schemainventoryadjustmentrequest"></a>
<a id="schema_InventoryAdjustmentRequest"></a>
<a id="tocSinventoryadjustmentrequest"></a>
<a id="tocsinventoryadjustmentrequest"></a>

```json
{
  "variant_id": "var_123",
  "delta": -3,
  "reason": "damaged in warehouse"
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The request body for applying a relative adjustment to a variant's on-hand stock.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|variant_id|string|true|none|The identifier of the variant to adjust. The variant must already exist.|
|delta|integer|true|none|The signed change to apply to `on_hand`. Must be non-zero. A negative delta that<br>would drive `on_hand` below zero is rejected with `409 conflict`.|
|reason|string|true|none|A required free-text reason recorded in the ledger (for example, damage or found stock).<br>Must not contain personal data.|

<h2 id="tocS_InventoryErrorResponse">InventoryErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemainventoryerrorresponse"></a>
<a id="schema_InventoryErrorResponse"></a>
<a id="tocSinventoryerrorresponse"></a>
<a id="tocsinventoryerrorresponse"></a>

```json
{
  "request_id": "req_7f3c9a12b8d54e6f",
  "error_type": "conflict",
  "error_codes": [
    "insufficient_stock"
  ],
  "variant_id": "var_123",
  "available": 1
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The error envelope returned by the inventory endpoints. On an `insufficient_stock` conflict it
also names the first failing variant and its current availability.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|The identifier of the request, for support and correlation.|
|error_type|string|false|none|A high-level classification of the error.|
|error_codes|[string]|false|none|One or more machine-readable error codes, in the `[subject]_[error]` form.|
|variant_id|string|false|none|The first variant that failed the request (present on `insufficient_stock`).|
|available|integer|false|none|The current sellable availability of the failing variant (present on `insufficient_stock`).|

<h2 id="tocS_InventoryHalLink">InventoryHalLink</h2>
<!-- backwards compatibility -->
<a id="schemainventoryhallink"></a>
<a id="schema_InventoryHalLink"></a>
<a id="tocSinventoryhallink"></a>
<a id="tocsinventoryhallink"></a>

```json
{
  "href": "https://api.checkout.com/inventory/var_123",
  "actions": [
    "GET"
  ],
  "types": [
    "application/json"
  ]
}

```

A HAL link describing a related operation on the resource.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string|false|none|Absolute URI of the linked resource.|
|actions|[string]|false|none|The HTTP methods supported on the linked resource.|
|types|[string]|false|none|The media types supported on the linked resource.|

<h2 id="tocS_InventoryIngestion">InventoryIngestion</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestion"></a>
<a id="schema_InventoryIngestion"></a>
<a id="tocSinventoryingestion"></a>
<a id="tocsinventoryingestion"></a>

```json
{
  "id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "state": "accepted",
  "mode": "upsert",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "failure_reason": {
    "code": "file_unreadable",
    "message": "The uploaded file could not be read as CSV."
  },
  "upload_url": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=...",
  "created_on": "2026-09-24T15:04:05Z",
  "modified_on": "2026-09-24T15:04:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "results": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "start": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
An asynchronous batch-ingestion job and its current state. Poll it until `state` is terminal,
then read the per-item report at `/inventory/ingestions/{id}/results`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The ingestion identifier, in the `ing_{base32-encoded GUID}` format.|
|state|string|false|none|The current state of the job. `awaiting_upload` is only used by the CSV flow, between<br>requesting an upload slot and starting processing. `completed`, `completed_with_errors`<br>and `failed` are terminal.|
|mode|string|false|none|The update semantics for the batch. Only `upsert` is available in this version.|
|counts|[InventoryIngestionCounts](#schemainventoryingestioncounts)|false|none|<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p><br>The running item tally for an ingestion job. `pending` reaches `0` when the job is terminal.|
|failure_reason|[InventoryIngestionFailureReason](#schemainventoryingestionfailurereason)|false|none|Present only when `state` is `failed`.|
|upload_url|string|false|none|A short-lived, `PUT`-only presigned URL to upload the CSV file to. Present only on the<br>response to a CSV upload-slot request.|
|created_on|string(date-time)|false|none|The date and time the job was created.|
|modified_on|string(date-time)|false|none|The date and time the job was last updated.|
|_links|object|false|none|Links to the operations valid for the job's current state. An `awaiting_upload` job also<br>exposes `start`.|
|» self|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» results|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» start|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|state|awaiting_upload|
|state|accepted|
|state|processing|
|state|completed|
|state|completed_with_errors|
|state|failed|
|mode|upsert|

<h2 id="tocS_InventoryIngestionCounts">InventoryIngestionCounts</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestioncounts"></a>
<a id="schema_InventoryIngestionCounts"></a>
<a id="tocSinventoryingestioncounts"></a>
<a id="tocsinventoryingestioncounts"></a>

```json
{
  "received": 500,
  "accepted": 498,
  "rejected": 2,
  "pending": 0
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The running item tally for an ingestion job. `pending` reaches `0` when the job is terminal.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|received|integer|false|none|The number of items received in the batch or parsed from the file.|
|accepted|integer|false|none|The number of items applied successfully so far.|
|rejected|integer|false|none|The number of items rejected so far, each recorded in the results report.|
|pending|integer|false|none|The number of items still to be processed. `0` once the job is terminal.|

<h2 id="tocS_InventoryIngestionFailureReason">InventoryIngestionFailureReason</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestionfailurereason"></a>
<a id="schema_InventoryIngestionFailureReason"></a>
<a id="tocSinventoryingestionfailurereason"></a>
<a id="tocsinventoryingestionfailurereason"></a>

```json
{
  "code": "file_unreadable",
  "message": "The uploaded file could not be read as CSV."
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
Why an ingestion job failed as a whole. Present only when `state` is `failed`. A merchant-owned
code (for example `file_unreadable`) can be acted on directly; a Checkout-owned code
(`internal_error`, `processing_timeout`) is alerted on our side and a re-submit is idempotency-safe.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|code|string|false|none|A machine-readable failure code.|
|message|string|false|none|A human-readable explanation of the failure.|

<h2 id="tocS_InventoryIngestionItem">InventoryIngestionItem</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestionitem"></a>
<a id="schema_InventoryIngestionItem"></a>
<a id="tocSinventoryingestionitem"></a>
<a id="tocsinventoryingestionitem"></a>

```json
{
  "variant_id": "var_123",
  "stock": {
    "on_hand": 25,
    "safety_stock": 2,
    "reason": "stock take 2026-07"
  },
  "product": {
    "title": "Classic leather belt, brown",
    "description": "A full-grain leather belt with a brushed nickel buckle.",
    "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
    "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
    "additional_image_urls": [
      "https://merchant.example.com/images/belt-brown-alt1.jpg"
    ],
    "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
    "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
    "sku": "BELT-BRN-001",
    "gtin": "00012345678905",
    "mpn": "MPN-4471",
    "brand": "Acme Leathercraft",
    "category": "Apparel & Accessories > Belts",
    "price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price_starts_at": "2026-08-01T00:00:00Z",
    "sale_price_ends_at": "2026-08-31T23:59:59Z",
    "group_id": "grp_belt_classic",
    "group_title": "Classic leather belt",
    "color": "Brown",
    "size": "M",
    "size_system": "US",
    "gender": "unisex",
    "condition": "new",
    "material": "Full-grain leather",
    "age_group": "adult",
    "length": 110,
    "width": 3.5,
    "height": 0.5,
    "dimension_unit": "cm",
    "weight": 0.2,
    "weight_unit": "kg",
    "expiration_date": "2027-01-01T00:00:00Z",
    "harmonized_system_code": "4203.30",
    "country_of_origin": "IT",
    "seller_name": "Acme Leathercraft Ltd",
    "seller_url": "https://acme-leathercraft.example.com",
    "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
    "seller_tos": "https://acme-leathercraft.example.com/terms"
  }
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
One item in a JSON batch. Provide:
- `stock` to set stock
- `product` to set product knowledge, or
- both.

At least one of the two must be present.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|variant_id|string|true|none|The merchant's variant identifier, unique within the merchant.|
|stock|[InventorySetLevelsRequest](#schemainventorysetlevelsrequest)|false|none|<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p><br>The request body for setting absolute stock levels on a variant.|
|product|[InventorySetProductRequest](#schemainventorysetproductrequest)|false|none|<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p><br>The request body for setting the product knowledge for a variant. The call is an upsert.|

anyOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

or

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_InventoryIngestionItemResult">InventoryIngestionItemResult</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestionitemresult"></a>
<a id="schema_InventoryIngestionItemResult"></a>
<a id="tocSinventoryingestionitemresult"></a>
<a id="tocsinventoryingestionitemresult"></a>

```json
{
  "index": 1,
  "variant_id": "var_123",
  "status": "rejected",
  "error_codes": [
    "on_hand_negative"
  ]
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The outcome for a single item in the batch.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|index|integer|false|none|The zero-based position of the item in the submitted batch or file.|
|variant_id|string|false|none|The variant identifier the item targeted.|
|status|string|false|none|Whether the item was applied or rejected.|
|error_codes|[string]|false|none|The collection of one or more machine-readable rejection codes, in the `[subject]_[error]` form. Empty for an accepted item.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|accepted|
|status|rejected|

<h2 id="tocS_InventoryIngestionRequest">InventoryIngestionRequest</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestionrequest"></a>
<a id="schema_InventoryIngestionRequest"></a>
<a id="tocSinventoryingestionrequest"></a>
<a id="tocsinventoryingestionrequest"></a>

```json
{
  "mode": "upsert",
  "items": [
    {
      "variant_id": "var_123",
      "stock": {
        "on_hand": 25,
        "safety_stock": 2,
        "reason": "stock take 2026-07"
      },
      "product": {
        "title": "Classic leather belt, brown",
        "description": "A full-grain leather belt with a brushed nickel buckle.",
        "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
        "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
        "additional_image_urls": [
          "https://merchant.example.com/images/belt-brown-alt1.jpg"
        ],
        "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
        "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
        "sku": "BELT-BRN-001",
        "gtin": "00012345678905",
        "mpn": "MPN-4471",
        "brand": "Acme Leathercraft",
        "category": "Apparel & Accessories > Belts",
        "price": {
          "amount": 1999,
          "currency": "USD"
        },
        "sale_price": {
          "amount": 1999,
          "currency": "USD"
        },
        "sale_price_starts_at": "2026-08-01T00:00:00Z",
        "sale_price_ends_at": "2026-08-31T23:59:59Z",
        "group_id": "grp_belt_classic",
        "group_title": "Classic leather belt",
        "color": "Brown",
        "size": "M",
        "size_system": "US",
        "gender": "unisex",
        "condition": "new",
        "material": "Full-grain leather",
        "age_group": "adult",
        "length": 110,
        "width": 3.5,
        "height": 0.5,
        "dimension_unit": "cm",
        "weight": 0.2,
        "weight_unit": "kg",
        "expiration_date": "2027-01-01T00:00:00Z",
        "harmonized_system_code": "4203.30",
        "country_of_origin": "IT",
        "seller_name": "Acme Leathercraft Ltd",
        "seller_url": "https://acme-leathercraft.example.com",
        "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
        "seller_tos": "https://acme-leathercraft.example.com/terms"
      }
    }
  ]
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The body of a JSON batch submit. Processing is asynchronous and non-atomic: good items apply
even if some are rejected.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|mode|string|false|none|The update semantics for the batch. Only `upsert` is available in this version.|
|items|[[InventoryIngestionItem](#schemainventoryingestionitem)]|true|none|The list of items to apply. Up to 500 items per batch.|

#### Enumerated Values

|Property|Value|
|---|---|
|mode|upsert|

<h2 id="tocS_InventoryIngestionResults">InventoryIngestionResults</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestionresults"></a>
<a id="schema_InventoryIngestionResults"></a>
<a id="tocSinventoryingestionresults"></a>
<a id="tocsinventoryingestionresults"></a>

```json
{
  "ingestion_id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2,
    "pending": 0
  },
  "items": [
    {
      "index": 1,
      "variant_id": "var_123",
      "status": "rejected",
      "error_codes": [
        "on_hand_negative"
      ]
    }
  ]
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The per-item results report for a terminal ingestion job. By default `items` lists only the
rejected rows; request `?include=all` to list every row.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ingestion_id|string|false|none|The ingestion identifier the report belongs to.|
|counts|[InventoryIngestionCounts](#schemainventoryingestioncounts)|false|none|<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p><br>The running item tally for an ingestion job. `pending` reaches `0` when the job is terminal.|
|items|[[InventoryIngestionItemResult](#schemainventoryingestionitemresult)]|false|none|The list of per-item outcomes.|

<h2 id="tocS_InventoryIngestionUploadRequest">InventoryIngestionUploadRequest</h2>
<!-- backwards compatibility -->
<a id="schemainventoryingestionuploadrequest"></a>
<a id="schema_InventoryIngestionUploadRequest"></a>
<a id="tocSinventoryingestionuploadrequest"></a>
<a id="tocsinventoryingestionuploadrequest"></a>

```json
{
  "mode": "upsert",
  "format": "csv"
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The body of a CSV upload-slot request. The response returns a presigned `upload_url` to `PUT`
the file to and a `start` link to begin processing.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|mode|string|false|none|The update semantics for the upload. Only `upsert` is available in this version.|
|format|string|false|none|The uploaded file format. Only `csv` is available in this version.|

#### Enumerated Values

|Property|Value|
|---|---|
|mode|upsert|
|format|csv|

<h2 id="tocS_InventoryLevels">InventoryLevels</h2>
<!-- backwards compatibility -->
<a id="schemainventorylevels"></a>
<a id="schema_InventoryLevels"></a>
<a id="tocSinventorylevels"></a>
<a id="tocsinventorylevels"></a>

```json
{
  "variant_id": "var_123",
  "on_hand": 10,
  "reserved": 2,
  "safety_stock": 1,
  "available": 7,
  "state": "in_stock",
  "source": "managed",
  "created_on": "2026-07-01T09:15:00Z",
  "modified_on": "2026-07-13T14:02:11Z",
  "product": {
    "variant_id": "var_123",
    "title": "Classic leather belt, brown",
    "description": "A full-grain leather belt with a brushed nickel buckle.",
    "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
    "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
    "additional_image_urls": [
      "https://merchant.example.com/images/belt-brown-alt1.jpg"
    ],
    "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
    "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
    "sku": "BELT-BRN-001",
    "gtin": "00012345678905",
    "mpn": "MPN-4471",
    "brand": "Acme Leathercraft",
    "category": "Apparel & Accessories > Belts",
    "price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price": {
      "amount": 1999,
      "currency": "USD"
    },
    "sale_price_starts_at": "2026-08-01T00:00:00Z",
    "sale_price_ends_at": "2026-08-31T23:59:59Z",
    "group_id": "grp_belt_classic",
    "group_title": "Classic leather belt",
    "color": "Brown",
    "size": "M",
    "size_system": "US",
    "gender": "unisex",
    "condition": "new",
    "material": "Full-grain leather",
    "age_group": "adult",
    "length": 110,
    "width": 3.5,
    "height": 0.5,
    "dimension_unit": "cm",
    "weight": 0.2,
    "weight_unit": "kg",
    "expiration_date": "2027-01-01T00:00:00Z",
    "harmonized_system_code": "4203.30",
    "country_of_origin": "IT",
    "seller_name": "Acme Leathercraft Ltd",
    "seller_url": "https://acme-leathercraft.example.com",
    "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
    "seller_tos": "https://acme-leathercraft.example.com/terms",
    "created_on": "2026-08-01T09:15:00Z",
    "modified_on": "2026-08-13T14:02:11Z",
    "_links": {
      "self": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "set": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      },
      "delete": {
        "href": "https://api.checkout.com/inventory/var_123",
        "actions": [
          "GET"
        ],
        "types": [
          "application/json"
        ]
      }
    }
  },
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The current stock levels and sellable availability for a single variant.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|variant_id|string|false|none|The merchant-provided identifier for the variant.|
|on_hand|integer|false|none|Physical stock known to Checkout.com.|
|reserved|integer|false|none|The sum of all currently active holds against this variant.|
|safety_stock|integer|false|none|A buffer quantity withheld from sale.|
|available|integer|false|none|The sellable quantity, clamped to zero: `max(0, on_hand − reserved − safety_stock)`.<br>This is the value an availability feed should publish.|
|state|string|false|none|A derived availability state for the variant.|
|source|string|false|none|How the levels are maintained. Always `managed` in the current version.|
|created_on|string(date-time)|false|none|The date and time the inventory item was created.|
|modified_on|string(date-time)|false|none|The date and time the inventory item was last modified.|
|product|[InventoryProductKnowledge](#schemainventoryproductknowledge)|false|none|The variant's product knowledge, embedded when `expand=product` is passed on the request and<br>product knowledge exists for the variant. Omitted otherwise.|
|_links|object|false|none|Links to related operations on the variant.|
|» self|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» set|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|state|in_stock|
|state|limited|
|state|out_of_stock|
|source|managed|
|source|sync|

<h2 id="tocS_InventoryMoney">InventoryMoney</h2>
<!-- backwards compatibility -->
<a id="schemainventorymoney"></a>
<a id="schema_InventoryMoney"></a>
<a id="tocSinventorymoney"></a>
<a id="tocsinventorymoney"></a>

```json
{
  "amount": 1999,
  "currency": "USD"
}

```

A monetary amount in the currency's minor units.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|true|none|The amount in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="_blank">minor currency unit</a>.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO 4217 currency code</a>.|

<h2 id="tocS_InventoryProductKnowledge">InventoryProductKnowledge</h2>
<!-- backwards compatibility -->
<a id="schemainventoryproductknowledge"></a>
<a id="schema_InventoryProductKnowledge"></a>
<a id="tocSinventoryproductknowledge"></a>
<a id="tocsinventoryproductknowledge"></a>

```json
{
  "variant_id": "var_123",
  "title": "Classic leather belt, brown",
  "description": "A full-grain leather belt with a brushed nickel buckle.",
  "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
  "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
  "additional_image_urls": [
    "https://merchant.example.com/images/belt-brown-alt1.jpg"
  ],
  "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
  "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
  "sku": "BELT-BRN-001",
  "gtin": "00012345678905",
  "mpn": "MPN-4471",
  "brand": "Acme Leathercraft",
  "category": "Apparel & Accessories > Belts",
  "price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price_starts_at": "2026-08-01T00:00:00Z",
  "sale_price_ends_at": "2026-08-31T23:59:59Z",
  "group_id": "grp_belt_classic",
  "group_title": "Classic leather belt",
  "color": "Brown",
  "size": "M",
  "size_system": "US",
  "gender": "unisex",
  "condition": "new",
  "material": "Full-grain leather",
  "age_group": "adult",
  "length": 110,
  "width": 3.5,
  "height": 0.5,
  "dimension_unit": "cm",
  "weight": 0.2,
  "weight_unit": "kg",
  "expiration_date": "2027-01-01T00:00:00Z",
  "harmonized_system_code": "4203.30",
  "country_of_origin": "IT",
  "seller_name": "Acme Leathercraft Ltd",
  "seller_url": "https://acme-leathercraft.example.com",
  "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
  "seller_tos": "https://acme-leathercraft.example.com/terms",
  "created_on": "2026-08-01T09:15:00Z",
  "modified_on": "2026-08-13T14:02:11Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "set": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "delete": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The product knowledge for a single variant: the merchandising fields an AI agent needs to
present, compare and recommend a product, independent of stock and pricing operations.

Optional fields are omitted from the response entirely when not set.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|variant_id|string|true|none|The merchant-provided identifier for the variant.|
|title|string|true|none|The product's display title.|
|description|string|true|none|The product's display description.|
|product_url|string|true|none|The canonical URL for the product page.|
|image_url|string|true|none|The URL of the primary product image.|
|additional_image_urls|[string]|false|none|Additional product image URLs, beyond `image_url`.|
|video_url|string|false|none|The URL of a product video.|
|model_3d_url|string|false|none|The URL of a 3D model of the product.|
|sku|string|false|none|The merchant's stock-keeping unit for the product.|
|gtin|string|false|none|The product's Global Trade Item Number (UPC, EAN, ISBN, or JAN).|
|mpn|string|false|none|The product's Manufacturer Part Number.|
|brand|string|false|none|The product's brand name.|
|category|string|false|none|The merchant's category for the product.|
|price|[InventoryMoney](#schemainventorymoney)|false|none|A monetary amount in the currency's minor units.|
|sale_price|[InventoryMoney](#schemainventorymoney)|false|none|A monetary amount in the currency's minor units.|
|sale_price_starts_at|string(date-time)|false|none|The date and time from which `sale_price` applies. Paired with `sale_price`.|
|sale_price_ends_at|string(date-time)|false|none|The date and time after which `sale_price` no longer applies. Paired with `sale_price`.|
|group_id|string|false|none|The identifier shared by all variants of the same product (for example, the same belt in<br>different sizes). When set, `color` and `size` are both required.|
|group_title|string|false|none|A display title for the variant group.|
|color|string|false|none|The variant's color. Required when `group_id` is set.|
|size|string|false|none|The variant's size. Required when `group_id` is set.|
|size_system|string|false|none|The sizing system that `size` is expressed in.|
|gender|string|false|none|The target gender for the product.|
|condition|string|true|none|The product's condition. Always present; defaults to `new` when not provided.|
|material|string|false|none|The product's primary material.|
|age_group|string|false|none|The target age group for the product.|
|length|number|false|none|The product's length. Provided together with `width`, `height` and `dimension_unit`, or not at all.|
|width|number|false|none|The product's width. Provided together with `length`, `height` and `dimension_unit`, or not at all.|
|height|number|false|none|The product's height. Provided together with `length`, `width` and `dimension_unit`, or not at all.|
|dimension_unit|string|false|none|The unit that `length`, `width` and `height` are expressed in.|
|weight|number|false|none|The product's weight. Provided together with `weight_unit`, or not at all.|
|weight_unit|string|false|none|The unit that `weight` is expressed in.|
|expiration_date|string(date-time)|false|none|The date and time after which the product should no longer be offered.|
|harmonized_system_code|string|false|none|The product's Harmonized System (HS) code, for customs purposes.|
|country_of_origin|string|false|none|The two-letter ISO 3166-1 alpha-2 country of origin.|
|seller_name|string|false|none|The name of the seller of record, when different from the merchant.|
|seller_url|string|false|none|The URL of the seller of record.|
|seller_privacy_policy|string|false|none|The URL of the seller's privacy policy.|
|seller_tos|string|false|none|The URL of the seller's terms of service.|
|created_on|string(date-time)|true|none|The date and time the product knowledge was created.|
|modified_on|string(date-time)|true|none|The date and time the product knowledge was last modified.|
|_links|object|true|none|Links to related operations on the variant's product knowledge.|
|» self|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» set|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» delete|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|condition|new|
|condition|used|
|condition|refurbished|

<h2 id="tocS_InventoryReservation">InventoryReservation</h2>
<!-- backwards compatibility -->
<a id="schemainventoryreservation"></a>
<a id="schema_InventoryReservation"></a>
<a id="tocSinventoryreservation"></a>
<a id="tocsinventoryreservation"></a>

```json
{
  "id": "rsv_tkoi5db4hryu5cei5vwoabr7we",
  "state": "held",
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "expires_at": "2026-07-14T08:47:00Z",
  "created_on": "2026-07-14T08:32:00Z",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "commit": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "release": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
A stock hold and its current lifecycle state.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The reservation identifier, in the `rsv_{base32-encoded GUID}` format.|
|state|string|false|none|The current state of the hold. A `held` reservation past its `expires_at` is reported<br>as `expired`. Transitions out of `held` are terminal.|
|owner_type|string|false|none|Echo of the owning caller kind.|
|owner_reference|string|false|none|Echo of the owning session or checkout reference.|
|items|[[InventoryReservationItem](#schemainventoryreservationitem)]|false|none|The variants and quantities held by this reservation.|
|expires_at|string(date-time)|false|none|The server-authoritative time at which the hold expires.|
|created_on|string(date-time)|false|none|The date and time the reservation was created.|
|_links|object|false|none|Links to the operations valid for the reservation's current state. A `held` reservation<br>exposes `self`, `commit` and `release`; a terminal reservation exposes `self` only.|
|» self|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» commit|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|
|» release|[InventoryHalLink](#schemainventoryhallink)|false|none|A HAL link describing a related operation on the resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|state|held|
|state|committed|
|state|released|
|state|expired|

<h2 id="tocS_InventoryReservationItem">InventoryReservationItem</h2>
<!-- backwards compatibility -->
<a id="schemainventoryreservationitem"></a>
<a id="schema_InventoryReservationItem"></a>
<a id="tocSinventoryreservationitem"></a>
<a id="tocsinventoryreservationitem"></a>

```json
{
  "variant_id": "var_123",
  "quantity": 2
}

```

A single variant and quantity within a reservation.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|variant_id|string|true|none|The identifier of the variant to hold. The variant must already exist.|
|quantity|integer|true|none|The quantity to hold for this variant.|

<h2 id="tocS_InventoryReservationRequest">InventoryReservationRequest</h2>
<!-- backwards compatibility -->
<a id="schemainventoryreservationrequest"></a>
<a id="schema_InventoryReservationRequest"></a>
<a id="tocSinventoryreservationrequest"></a>
<a id="tocsinventoryreservationrequest"></a>

```json
{
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "ttl_seconds": 900
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The request body for creating an atomic multi-variant hold. All items are reserved together
or none are. The hold is protocol-neutral: it is bound to an `owner_type` / `owner_reference`
supplied by the calling protocol adapter (for example, a UCP session or an ACP checkout).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|owner_type|string|true|none|The kind of caller that owns the hold.|
|owner_reference|string|true|none|An opaque reference to the owning session or checkout.|
|items|[[InventoryReservationItem](#schemainventoryreservationitem)]|true|none|The variants and quantities to hold. `variant_id`s must be unique within the request.|
|ttl_seconds|integer|false|none|How long the hold remains valid before it auto-expires. Defaults to `900`.|

<h2 id="tocS_InventorySetLevelsRequest">InventorySetLevelsRequest</h2>
<!-- backwards compatibility -->
<a id="schemainventorysetlevelsrequest"></a>
<a id="schema_InventorySetLevelsRequest"></a>
<a id="tocSinventorysetlevelsrequest"></a>
<a id="tocsinventorysetlevelsrequest"></a>

```json
{
  "on_hand": 25,
  "safety_stock": 2,
  "reason": "stock take 2026-07"
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The request body for setting absolute stock levels on a variant.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|on_hand|integer|true|none|The absolute physical stock to set for the variant.|
|safety_stock|integer|false|none|The buffer quantity to withhold from sale. Defaults to `0` when the item is<br>created and is left unchanged on update if omitted.|
|reason|string|false|none|An optional free-text reason recorded in the ledger. Must not contain personal data.|

<h2 id="tocS_InventorySetProductRequest">InventorySetProductRequest</h2>
<!-- backwards compatibility -->
<a id="schemainventorysetproductrequest"></a>
<a id="schema_InventorySetProductRequest"></a>
<a id="tocSinventorysetproductrequest"></a>
<a id="tocsinventorysetproductrequest"></a>

```json
{
  "title": "Classic leather belt, brown",
  "description": "A full-grain leather belt with a brushed nickel buckle.",
  "product_url": "https://merchant.example.com/products/classic-leather-belt-brown",
  "image_url": "https://merchant.example.com/images/belt-brown-main.jpg",
  "additional_image_urls": [
    "https://merchant.example.com/images/belt-brown-alt1.jpg"
  ],
  "video_url": "https://merchant.example.com/videos/belt-brown.mp4",
  "model_3d_url": "https://merchant.example.com/models/belt-brown.glb",
  "sku": "BELT-BRN-001",
  "gtin": "00012345678905",
  "mpn": "MPN-4471",
  "brand": "Acme Leathercraft",
  "category": "Apparel & Accessories > Belts",
  "price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price": {
    "amount": 1999,
    "currency": "USD"
  },
  "sale_price_starts_at": "2026-08-01T00:00:00Z",
  "sale_price_ends_at": "2026-08-31T23:59:59Z",
  "group_id": "grp_belt_classic",
  "group_title": "Classic leather belt",
  "color": "Brown",
  "size": "M",
  "size_system": "US",
  "gender": "unisex",
  "condition": "new",
  "material": "Full-grain leather",
  "age_group": "adult",
  "length": 110,
  "width": 3.5,
  "height": 0.5,
  "dimension_unit": "cm",
  "weight": 0.2,
  "weight_unit": "kg",
  "expiration_date": "2027-01-01T00:00:00Z",
  "harmonized_system_code": "4203.30",
  "country_of_origin": "IT",
  "seller_name": "Acme Leathercraft Ltd",
  "seller_url": "https://acme-leathercraft.example.com",
  "seller_privacy_policy": "https://acme-leathercraft.example.com/privacy",
  "seller_tos": "https://acme-leathercraft.example.com/terms"
}

```

<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p>
The request body for setting the product knowledge for a variant. The call is an upsert.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|title|string|true|none|The product's display title.|
|description|string|true|none|The product's display description.|
|product_url|string|true|none|The canonical URL for the product page.|
|image_url|string|true|none|The URL of the primary product image.|
|additional_image_urls|[string]|false|none|Additional product image URLs, beyond `image_url`.|
|video_url|string|false|none|The URL of a product video.|
|model_3d_url|string|false|none|The URL of a 3D model of the product.|
|sku|string|false|none|The merchant's stock-keeping unit for the product.|
|gtin|string|false|none|The product's Global Trade Item Number (UPC, EAN, ISBN, or JAN).|
|mpn|string|false|none|The product's Manufacturer Part Number.|
|brand|string|false|none|The product's brand name.|
|category|string|false|none|The merchant's category for the product.|
|price|[InventoryMoney](#schemainventorymoney)|false|none|The product's regular price. When provided together with `sale_price`, `sale_price` must<br>use the same currency and be less than or equal to `price`.|
|sale_price|[InventoryMoney](#schemainventorymoney)|false|none|The product's discounted price. Must share `price`'s currency and be less than or equal<br>to `price`.|
|sale_price_starts_at|string(date-time)|false|none|The date and time from which `sale_price` applies. Paired with `sale_price`.|
|sale_price_ends_at|string(date-time)|false|none|The date and time after which `sale_price` no longer applies. Paired with `sale_price`.|
|group_id|string|false|none|The identifier shared by all variants of the same product (for example, the same belt in<br>different sizes). When set, `color` and `size` are both required.|
|group_title|string|false|none|A display title for the variant group.|
|color|string|false|none|The variant's color. Required when `group_id` is set.|
|size|string|false|none|The variant's size. Required when `group_id` is set.|
|size_system|string|false|none|The sizing system that `size` is expressed in.|
|gender|string|false|none|The target gender for the product.|
|condition|string|false|none|The product's condition, as an exact lowercase match of one of the enum values.<br>Defaults to `new` when omitted.|
|material|string|false|none|The product's primary material.|
|age_group|string|false|none|The target age group for the product.|
|length|number|false|none|The product's length. `length`, `width`, `height` and `dimension_unit` must be provided<br>together, or not at all.|
|width|number|false|none|The product's width. `length`, `width`, `height` and `dimension_unit` must be provided<br>together, or not at all.|
|height|number|false|none|The product's height. `length`, `width`, `height` and `dimension_unit` must be provided<br>together, or not at all.|
|dimension_unit|string|false|none|The unit that `length`, `width` and `height` are expressed in. Required when any of<br>`length`, `width` or `height` is set.|
|weight|number|false|none|The product's weight. Must be provided together with `weight_unit`, or not at all.|
|weight_unit|string|false|none|The unit that `weight` is expressed in. Required when `weight` is set.|
|expiration_date|string(date-time)|false|none|The date and time after which the product should no longer be offered.|
|harmonized_system_code|string|false|none|The product's Harmonized System (HS) code, for customs purposes.|
|country_of_origin|string|false|none|The two-letter ISO 3166-1 alpha-2 country of origin.|
|seller_name|string|false|none|The name of the seller of record, when different from the merchant.|
|seller_url|string|false|none|The URL of the seller of record.|
|seller_privacy_policy|string|false|none|The URL of the seller's privacy policy.|
|seller_tos|string|false|none|The URL of the seller's terms of service.|

#### Enumerated Values

|Property|Value|
|---|---|
|condition|new|
|condition|used|
|condition|refurbished|

<h2 id="tocS_AmlVerification">AmlVerification</h2>
<!-- backwards compatibility -->
<a id="schemaamlverification"></a>
<a id="schema_AmlVerification"></a>
<a id="tocSamlverification"></a>
<a id="tocsamlverification"></a>

```json
{
  "id": "amlv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "created",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "search_parameters": {
    "configuration_identifier": "12345678-1234-1234-1234-123456789012"
  },
  "monitored": true,
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[AmlVerificationId](#schemaamlverificationid)|true|read-only|The AML screening's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[AmlVerificationBase](#schemaamlverificationbase)|false|none|none|

<h2 id="tocS_AmlVerificationBase">AmlVerificationBase</h2>
<!-- backwards compatibility -->
<a id="schemaamlverificationbase"></a>
<a id="schema_AmlVerificationBase"></a>
<a id="tocSamlverificationbase"></a>
<a id="tocsamlverificationbase"></a>

```json
{
  "status": "created",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "search_parameters": {
    "configuration_identifier": "12345678-1234-1234-1234-123456789012"
  },
  "monitored": true,
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|[AmlVerificationStatuses](#schemaamlverificationstatuses)|true|read-only|The [screening status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|search_parameters|[SearchParameters](#schemasearchparameters)|true|none|The screening's configuration details.|
|monitored|boolean|false|none|Indicates whether to continue to [monitor the applicant's AML status](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases#Configure_monitoring).|
|_links|[AmlVerificationLinks](#schemaamlverificationlinks)|true|read-only|none|

<h2 id="tocS_AmlVerificationCreateBase">AmlVerificationCreateBase</h2>
<!-- backwards compatibility -->
<a id="schemaamlverificationcreatebase"></a>
<a id="schema_AmlVerificationCreateBase"></a>
<a id="tocSamlverificationcreatebase"></a>
<a id="tocsamlverificationcreatebase"></a>

```json
{
  "status": "created",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "search_parameters": {
    "configuration_identifier": "12345678-1234-1234-1234-123456789012"
  },
  "monitored": true,
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

*None*

<h2 id="tocS_AmlVerificationId">AmlVerificationId</h2>
<!-- backwards compatibility -->
<a id="schemaamlverificationid"></a>
<a id="schema_AmlVerificationId"></a>
<a id="tocSamlverificationid"></a>
<a id="tocsamlverificationid"></a>

```json
"amlv_tkoi5db4hryu5cei5vwoabr7we"

```

The AML screening's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The AML screening's unique identifier.|

<h2 id="tocS_AmlVerificationLinks">AmlVerificationLinks</h2>
<!-- backwards compatibility -->
<a id="schemaamlverificationlinks"></a>
<a id="schema_AmlVerificationLinks"></a>
<a id="tocSamlverificationlinks"></a>
<a id="tocsamlverificationlinks"></a>

```json
{
  "self": {
    "href": "http://example.com"
  }
}

```

### Properties

*None*

<h2 id="tocS_AmlVerificationOutput">AmlVerificationOutput</h2>
<!-- backwards compatibility -->
<a id="schemaamlverificationoutput"></a>
<a id="schema_AmlVerificationOutput"></a>
<a id="tocSamlverificationoutput"></a>
<a id="tocsamlverificationoutput"></a>

```json
{
  "id": "amlv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "status": "created",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "search_parameters": {
    "configuration_identifier": "12345678-1234-1234-1234-123456789012"
  },
  "monitored": true,
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[AmlVerificationId](#schemaamlverificationid)|true|none|The AML screening's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[AmlVerificationCreateBase](#schemaamlverificationcreatebase)|false|none|none|

<h2 id="tocS_AmlVerificationStatuses">AmlVerificationStatuses</h2>
<!-- backwards compatibility -->
<a id="schemaamlverificationstatuses"></a>
<a id="schema_AmlVerificationStatuses"></a>
<a id="tocSamlverificationstatuses"></a>
<a id="tocsamlverificationstatuses"></a>

```json
"created"

```

The [screening status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The [screening status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|created|
|*anonymous*|screening_in_progress|
|*anonymous*|approved|
|*anonymous*|declined|
|*anonymous*|review_required|

<h2 id="tocS_SearchParameters">SearchParameters</h2>
<!-- backwards compatibility -->
<a id="schemasearchparameters"></a>
<a id="schema_SearchParameters"></a>
<a id="tocSsearchparameters"></a>
<a id="tocssearchparameters"></a>

```json
{
  "configuration_identifier": "12345678-1234-1234-1234-123456789012"
}

```

The screening's configuration details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|configuration_identifier|string|true|none|Your AML Screening [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases#Configuration).|

<h2 id="tocS_ApplePayCertificateRequest">ApplePayCertificateRequest</h2>
<!-- backwards compatibility -->
<a id="schemaapplepaycertificaterequest"></a>
<a id="schema_ApplePayCertificateRequest"></a>
<a id="tocSapplepaycertificaterequest"></a>
<a id="tocsapplepaycertificaterequest"></a>

```json
{
  "content": "MIIEfTCCBCOgAwIBAgIID/asezaWNycwCgYIKoZIzj0EAwIwgYAxNDAyBgNVBAMMK0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENBIC0gRzIxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0yMTA2MTExMzQ0MjVaFw0yMzA3MTExMzQ0MjRaMIGuMS0wKwYKCZImiZPyLGQBAQwdbWVyY2hhbnQuY29tLmNoZWNrb3V0LnNhbmRib3gxQzBBBgNVBAMMOkFwcGxlIFBheSBQYXltZW50IFByb2Nlc3Npbmc6bWVyY2hhbnQuY29tLmNoZWNrb3V0LnNhbmRib3gxEzARBgNVBAsMCkUzMlhCUUs0UTUxFjAUBgNVBAoMDUNoZWNrb3V0IEx0ZC4xCzAJBgNVBAYTAkdCMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsvyUM9D1cssldH+VPptEn4VAw/Q6ovJuHVlyBSRaPGLHFce04lCiT/xnXOWRkUxyCzQWKhfG2zo19u4s+evx7aOCAlUwggJRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUhLaEzDqGYnIWWZToGqO9SN863wswRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzABhitodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxld3dkcmNhMjAxMIIBHQYDVR0gBIIBFDCCARAwggEMBgkqhkiG92NkBQEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5LzA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXd3ZHJjYTIuY3JsMB0GA1UdDgQWBBRNhvr33NDuM4QxBZd16a+ACbHoEzAOBgNVHQ8BAf8EBAMCAygwTwYJKoZIhvdjZAYgBEIMQDdGRjg0REI5MDE5NkVGN0I5RTc4NDZEMjg4NzZCNkJGRDU2RjM4MDlCNzUyNjAzRDM4QzcxNUJFMTY2M0JENEMwCgYIKoZIzj0EAwIDSAAwRQIgTjywMwOrLX3TwDUrPn7yDGL/dhc+VNudv0uGBOWRyXACIQClFQFvgx+hfTwVdHt8klrswpgtZtbYjs74p9GYuc8Puw=="
}

```

Certificate content to be added an account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|content|string|true|none|The certificate content|

<h2 id="tocS_ApplePayCertificateResponse">ApplePayCertificateResponse</h2>
<!-- backwards compatibility -->
<a id="schemaapplepaycertificateresponse"></a>
<a id="schema_ApplePayCertificateResponse"></a>
<a id="tocSapplepaycertificateresponse"></a>
<a id="tocsapplepaycertificateresponse"></a>

```json
{
  "id": "aplc_hefptsiydvkexnzzb35zrlqgfq",
  "public_key_hash": "tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6Nl0=",
  "valid_from": "2021-01-01T17:32:28Z",
  "valid_until": "2025-01-01T17:32:28Z"
}

```

Response for an attached certificate for an account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The identifier of the account domain|
|public_key_hash|string|true|none|Hash of the certificate public key|
|valid_from|string(date-time)|true|none|When the certificate is valid from|
|valid_until|string(date-time)|true|none|When the certificate is valid until|

<h2 id="tocS_ApplePayEnrollmentErrorResponse">ApplePayEnrollmentErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemaapplepayenrollmenterrorresponse"></a>
<a id="schema_ApplePayEnrollmentErrorResponse"></a>
<a id="tocSapplepayenrollmenterrorresponse"></a>
<a id="tocsapplepayenrollmenterrorresponse"></a>

```json
{
  "error_codes": [
    "invalid_request"
  ],
  "error_type": "invalid_request",
  "request_id": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error_codes|[string]|false|none|none|
|error_type|string|false|none|none|
|request_id|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|error_type|invalid_request|
|error_type|domain_not_enrolled|
|error_type|domain_does_not_exist|
|error_type|domain_verification_failed|

<h2 id="tocS_ApplePayEnrollmentRequest">ApplePayEnrollmentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaapplepayenrollmentrequest"></a>
<a id="schema_ApplePayEnrollmentRequest"></a>
<a id="tocSapplepayenrollmentrequest"></a>
<a id="tocsapplepayenrollmentrequest"></a>

```json
{
  "domain": "someDomain.com"
}

```

The enrollment request used to onboard the domain

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|domain|string|false|none|The domain to enroll|

<h2 id="tocS_ApplePaySigningRequest">ApplePaySigningRequest</h2>
<!-- backwards compatibility -->
<a id="schemaapplepaysigningrequest"></a>
<a id="schema_ApplePaySigningRequest"></a>
<a id="tocSapplepaysigningrequest"></a>
<a id="tocsapplepaysigningrequest"></a>

```json
{
  "protocol_version": "ec_v1"
}

```

The encryption type used for the signing request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|protocol_version|string|false|none|The protocol version of the encryption type used.|

#### Enumerated Values

|Property|Value|
|---|---|
|protocol_version|ec_v1|
|protocol_version|rsa_v1|

<h2 id="tocS_ApplePaySigningRequestResponse">ApplePaySigningRequestResponse</h2>
<!-- backwards compatibility -->
<a id="schemaapplepaysigningrequestresponse"></a>
<a id="schema_ApplePaySigningRequestResponse"></a>
<a id="tocSapplepaysigningrequestresponse"></a>
<a id="tocsapplepaysigningrequestresponse"></a>

```json
{
  "content": "-----BEGIN CERTIFICATE REQUEST-----MIIBSDCB8AIBADCBjzELMAkGA1UEBhMCR0IxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMRUwEwYDVQQKDAxDaGVja291dC5jb20xCzAJBgNVBA8MAklUMRUwEwYDVQQDDAxjaGVja291dC5jb20xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAY2hlY2tvdXQuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXf/MDFRLSblykajGm0GE+lUNoOIEa0DbWc7Bv3s55bYtW1fJo2/MJIPojUKuKUx2VsEfGmmqXKbq4IhAr0bM8TAKBggqhkjOPQQDAgNHADBEAiAo1Dv4TXTacSeIfy4HDjzPMQY2+OxTW6szRJjGyfKgXQIgdHAX0BmI+1rozysjXv8MvoxehQIGACQ+UWJle+UZ2ms=-----END CERTIFICATE REQUEST-----"
}

```

Retrieve a signing request for an account to begin certification process

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|content|string|true|none|The signing request content|

<h2 id="tocS_ApplicantId">ApplicantId</h2>
<!-- backwards compatibility -->
<a id="schemaapplicantid"></a>
<a id="schema_ApplicantId"></a>
<a id="tocSapplicantid"></a>
<a id="tocsapplicantid"></a>

```json
"aplt_tkoi5db4hryu5cei5vwoabr7we"

```

The applicant's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The applicant's unique identifier.|

<h2 id="tocS_Attempt">Attempt</h2>
<!-- backwards compatibility -->
<a id="schemaattempt"></a>
<a id="schema_Attempt"></a>
<a id="tocSattempt"></a>
<a id="tocsattempt"></a>

```json
{
  "scheme": "accel"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|scheme|string|false|none|The card scheme to use for the payment attempt.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|accel|
|scheme|amex|
|scheme|cartes_bancaires|
|scheme|diners|
|scheme|discover|
|scheme|jcb|
|scheme|mada|
|scheme|maestro|
|scheme|mastercard|
|scheme|nyce|
|scheme|omannet|
|scheme|pulse|
|scheme|shazam|
|scheme|star|
|scheme|upi|
|scheme|visa|

<h2 id="tocS_BacsNotificationRequest">BacsNotificationRequest</h2>
<!-- backwards compatibility -->
<a id="schemabacsnotificationrequest"></a>
<a id="schema_BacsNotificationRequest"></a>
<a id="tocSbacsnotificationrequest"></a>
<a id="tocsbacsnotificationrequest"></a>

```json
{
  "source_id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "notification_type": "advance_notice",
  "collection_date": "2026-07-15",
  "amount": 4999,
  "currency": "GBP",
  "reference": "INV-12345",
  "customer_email": "customer@example.com",
  "billing_descriptor": "CHECKOUT",
  "support_email": "support@test.com",
  "support_phone": "+447700900123"
}

```

Bacs Direct Debit notification request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source_id|string|true|none|The ID of the Bacs Direct Debit instrument to notify against.|
|notification_type|string|true|none|The type of pre-notification being sent to the payer.|
|collection_date|string(date)|true|none|The date the funds will be collected from the payer's account, in the format yyyy-MM-dd.|
|amount|integer(int64)|true|none|The amount to be collected, in the currency's minor unit.|
|currency|string|true|none|The three-letter ISO 4217 currency code of the collection.|
|reference|string|false|none|A reference you can use to identify the collection.|
|customer_email|string(email)|true|none|The email address of the payer that the pre-notification is sent to.|
|billing_descriptor|string|true|none|The billing descriptor that appears on the payer's bank statement.|
|support_email|string(email)|true|none|The support email address included in the pre-notification.|
|support_phone|string|false|none|The support phone number included in the pre-notification, in E.164 format.|

#### Enumerated Values

|Property|Value|
|---|---|
|notification_type|advance_notice|

<h2 id="tocS_BacsNotificationResponse">BacsNotificationResponse</h2>
<!-- backwards compatibility -->
<a id="schemabacsnotificationresponse"></a>
<a id="schema_BacsNotificationResponse"></a>
<a id="tocSbacsnotificationresponse"></a>
<a id="tocsbacsnotificationresponse"></a>

```json
{
  "event_id": "evt_lzr4csdtddwetactr6phd3kea4"
}

```

Bacs Direct Debit pre-notification response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|event_id|string|true|none|The unique identifier of the notification event.|

<h2 id="tocS_Balance">Balance</h2>
<!-- backwards compatibility -->
<a id="schemabalance"></a>
<a id="schema_Balance"></a>
<a id="tocSbalance"></a>
<a id="tocsbalance"></a>

```json
{
  "pending": 23000,
  "available": 50000,
  "payable": 2700,
  "collateral": 6000,
  "operational": 7000,
  "collateral_breakdown": {
    "fixed_reserve": 4000,
    "rolling_reserve": 2000
  }
}

```

Balance values

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|pending|number|false|none|The total incoming funds that will be added to the Available balance once cleared.|
|available|number|false|none|The funds that are available for processing.|
|payable|number|false|none|The funds reserved from the Available balance for outgoing transactions that are yet to clear.|
|collateral|number|false|none|The funds held by Checkout.com to cover potential liabilities and risk events associated with your payment processing.|
|operational|number|false|none|The funds held for processing Payouts and Issuing payments when the Available balance is insufficient.|
|collateral_breakdown|object|false|none|A breakdown of the funds held in the `collateral` balance.|
|» fixed_reserve|number|true|none|The portion of the `collateral` balance held as a fixed reserve.|
|» rolling_reserve|number|true|none|The portion of the `collateral` balance held as a rolling reserve.|

<h2 id="tocS_BalancesResponse">BalancesResponse</h2>
<!-- backwards compatibility -->
<a id="schemabalancesresponse"></a>
<a id="schema_BalancesResponse"></a>
<a id="tocSbalancesresponse"></a>
<a id="tocsbalancesresponse"></a>

```json
{
  "data": [
    {
      "currency_account_id": "ca_g5y7d6jo4e2urgforcbf2ey5jm",
      "descriptor": "Revenue Account 1",
      "holding_currency": "EUR",
      "balances_as_of": "2026-05-06T13:59:59.9999999+00:00",
      "balances": {
        "pending": 23000,
        "available": 50000,
        "payable": 2700,
        "collateral": 6000,
        "operational": 7000,
        "collateral_breakdown": {
          "fixed_reserve": 4000,
          "rolling_reserve": 2000
        }
      }
    }
  ]
}

```

Balances response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[[CurrencyAccountBalance](#schemacurrencyaccountbalance)]|false|none|The list of requested balances.|

<h2 id="tocS_CurrencyAccountBalance">CurrencyAccountBalance</h2>
<!-- backwards compatibility -->
<a id="schemacurrencyaccountbalance"></a>
<a id="schema_CurrencyAccountBalance"></a>
<a id="tocScurrencyaccountbalance"></a>
<a id="tocscurrencyaccountbalance"></a>

```json
{
  "currency_account_id": "ca_g5y7d6jo4e2urgforcbf2ey5jm",
  "descriptor": "Revenue Account 1",
  "holding_currency": "EUR",
  "balances_as_of": "2026-05-06T13:59:59.9999999+00:00",
  "balances": {
    "pending": 23000,
    "available": 50000,
    "payable": 2700,
    "collateral": 6000,
    "operational": 7000,
    "collateral_breakdown": {
      "fixed_reserve": 4000,
      "rolling_reserve": 2000
    }
  }
}

```

Currency Account Balance

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|currency_account_id|string|false|none|The unique identifier of the currency account (sub-account). Returned only when the request is made with `withCurrencyAccountId=true`.|
|descriptor|string|false|none|A descriptor for the currency account.|
|holding_currency|string|false|none|The holding currency of the currency account (the three character ISO 4217 code).|
|balances_as_of|string(date-time)|false|none|The UTC datetime reflecting when the balance values were fetched. If the request includes a `balancesAt` query parameter, this matches that value; otherwise, it is the time the request was processed.|
|balances|[Balance](#schemabalance)|false|none|The respective balance values.|

<h2 id="tocS_TopUpBankDetails">TopUpBankDetails</h2>
<!-- backwards compatibility -->
<a id="schematopupbankdetails"></a>
<a id="schema_TopUpBankDetails"></a>
<a id="tocStopupbankdetails"></a>
<a id="tocstopupbankdetails"></a>

```json
{
  "domestic": {
    "beneficiary_account_name": "Acme Inc",
    "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
    "bank_name": "Example Bank",
    "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
    "account_number": "1234567890",
    "sort_code": "000000",
    "routing_number": "000000000",
    "iban": "GB00EXAM00000000000000",
    "swift_code": "TESTUS00XXX"
  },
  "international": {
    "beneficiary_account_name": "Acme Inc",
    "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
    "bank_name": "Example Bank",
    "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
    "account_number": "1234567890",
    "sort_code": "000000",
    "routing_number": "000000000",
    "iban": "GB00EXAM00000000000000",
    "swift_code": "TESTUS00XXX"
  }
}

```

Top-up bank details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|domestic|[TopUpFundingDetails](#schematopupfundingdetails)|false|none|The bank details for a single funding rail. `beneficiary_account_name` and `bank_name` are the only fields always returned. The remaining fields vary by rail and the receiving bank's jurisdiction, and are omitted when they do not apply.|
|international|[TopUpFundingDetails](#schematopupfundingdetails)|false|none|The bank details for a single funding rail. `beneficiary_account_name` and `bank_name` are the only fields always returned. The remaining fields vary by rail and the receiving bank's jurisdiction, and are omitted when they do not apply.|

<h2 id="tocS_TopUpFundingDetails">TopUpFundingDetails</h2>
<!-- backwards compatibility -->
<a id="schematopupfundingdetails"></a>
<a id="schema_TopUpFundingDetails"></a>
<a id="tocStopupfundingdetails"></a>
<a id="tocstopupfundingdetails"></a>

```json
{
  "beneficiary_account_name": "Acme Inc",
  "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
  "bank_name": "Example Bank",
  "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
  "account_number": "1234567890",
  "sort_code": "000000",
  "routing_number": "000000000",
  "iban": "GB00EXAM00000000000000",
  "swift_code": "TESTUS00XXX"
}

```

Top-up funding details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|beneficiary_account_name|string|true|none|The name of the account that receives the funds.|
|beneficiary_address|string|false|none|The address of the beneficiary, if the rail requires it.|
|bank_name|string|true|none|The name of the bank that receives the funds.|
|bank_address|string|false|none|The address of the receiving bank, if the rail requires it.|
|account_number|string|false|none|The account number of the receiving account.|
|sort_code|string|false|none|The sort code of the receiving bank. Returned for United Kingdom domestic transfers.|
|routing_number|string|false|none|The routing number of the receiving bank. Returned for United States domestic transfers.|
|iban|string|false|none|The International Bank Account Number of the receiving account.|
|swift_code|string|false|none|The SWIFT or BIC code of the receiving bank. Returned for international transfers.|

<h2 id="tocS_TopUpInstructionsResponse">TopUpInstructionsResponse</h2>
<!-- backwards compatibility -->
<a id="schematopupinstructionsresponse"></a>
<a id="schema_TopUpInstructionsResponse"></a>
<a id="tocStopupinstructionsresponse"></a>
<a id="tocstopupinstructionsresponse"></a>

```json
{
  "currency_account_id": "ca_g5y7d6jo4e2urgforcbf2ey5jm",
  "currency": "USD",
  "payment_reference": "TP-ABC123",
  "bank_details": {
    "domestic": {
      "beneficiary_account_name": "Acme Inc",
      "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
      "bank_name": "Example Bank",
      "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
      "account_number": "1234567890",
      "sort_code": "000000",
      "routing_number": "000000000",
      "iban": "GB00EXAM00000000000000",
      "swift_code": "TESTUS00XXX"
    },
    "international": {
      "beneficiary_account_name": "Acme Inc",
      "beneficiary_address": "1 Example Street, Exampleville, EX, 00000, US",
      "bank_name": "Example Bank",
      "bank_address": "1 Example Street, Exampleville, EX, 00000, US",
      "account_number": "1234567890",
      "sort_code": "000000",
      "routing_number": "000000000",
      "iban": "GB00EXAM00000000000000",
      "swift_code": "TESTUS00XXX"
    }
  }
}

```

Top-up instructions

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|currency_account_id|string|true|none|The unique identifier of the sub-account that the instructions apply to.|
|currency|string|true|none|The currency that funds must be sent in, as a three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO 4217 currency code</a>. <br/><br/> This is the sub-account's holding currency, returned as `holding_currency` by the <a href="https://api-reference.checkout.com/#operation/getEntityBalances">Retrieve entity balances</a> endpoint.|
|payment_reference|string|true|none|The reference that must be quoted on the payment. It is how an incoming payment is attributed to the sub-account. A payment sent without this reference may not be credited.|
|bank_details|[TopUpBankDetails](#schematopupbankdetails)|true|none|The bank details for each available funding rail. Both `domestic` and `international` are optional, and their availability depends on the sub-account's holding currency, jurisdiction, and banking partner. Do not assume that both rails are always available.|

<h2 id="tocS_CardPayoutAcceptedResponse">CardPayoutAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutacceptedresponse"></a>
<a id="schema_CardPayoutAcceptedResponse"></a>
<a id="tocScardpayoutacceptedresponse"></a>
<a id="tocscardpayoutacceptedresponse"></a>

```json
{
  "id": "pay_8n2n4o4dsasergngxiq3cx4xtu",
  "status": "Accepted",
  "reference": "example payout",
  "destination": {
    "account_holder": {
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy"
    }
  },
  "instruction": {
    "funds_transfer_type": "AA"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_8n2n4o4dsasergngxiq3cx4xtu"
    }
  }
}

```

Card Payout

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The payment's unique identifier.|
|status|string|true|none|The payout status.|
|reference|string|false|none|The reference you provided in the payout request.|
|destination|object|false|none|The payout destination.|
|» account_holder|object|false|none|The account holder details.|
|»» id|string|false|none|The payment destination identifier (e.g., a card source identifier)|
|instruction|object|true|none|Details about the instruction for the payout.|
|» funds_transfer_type|string|false|none|Scheme categorisation of the client (FD, MT, AA etc.)|
|_links|object|true|none|The links related to the payout.|
|» self|object|true|none|The payout URI.|
|»» href|string|true|none|The link URL|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Accepted|
|status|Rejected|

<h2 id="tocS_CardPayoutActionsResponse">CardPayoutActionsResponse</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutactionsresponse"></a>
<a id="schema_CardPayoutActionsResponse"></a>
<a id="tocScardpayoutactionsresponse"></a>
<a id="tocscardpayoutactionsresponse"></a>

```json
[
  {
    "id": "act_z4s46odkw3uerbgujmxdjknthu",
    "type": "Payout",
    "processed_on": "2018-01-20T10:30:48Z",
    "amount": 1000,
    "approved": true,
    "response_code": "10000",
    "response_summary": "Approved"
  }
]

```

The payout actions.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[PaymentAction](#schemapaymentaction)]|false|none|The payout actions.|

<h2 id="tocS_CardPayoutDetails">CardPayoutDetails</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutdetails"></a>
<a id="schema_CardPayoutDetails"></a>
<a id="tocScardpayoutdetails"></a>
<a id="tocscardpayoutdetails"></a>

```json
{
  "id": "pay_8n2n4o4dsasergngxiq3cx4xtu",
  "requested_on": "2019-08-24T14:15:22Z",
  "processed_on": "2019-08-24T14:15:22Z",
  "source": {
    "type": "currency_account",
    "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44",
    "amount": 100,
    "currency": "GBP"
  },
  "destination": {
    "bin": "424242",
    "type": "token",
    "token": "tok_ihvkileifkzebkgnhkskbglyte",
    "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44",
    "expiry_year": 2024,
    "expiry_month": 12,
    "account_holder": {
      "type": "individual",
      "first_name": "John",
      "last_name": "Smith",
      "company_name": "ABC International"
    },
    "scheme": "visa",
    "last4": "4242",
    "fingerprint": "436d1eb12c4b92b9eeb1e798dea93a718c78f5362c7fb5d84b51c72a869b6101",
    "card_type": "CREDIT",
    "card_category": "CONSUMER",
    "issuer": "ABC Bank",
    "issuer_country": "GB",
    "product_id": "A",
    "product_type": "Visa Traditional"
  },
  "amount": 100,
  "currency": "GBP",
  "reference": "example payout",
  "billing_descriptor": {
    "reference": "Card Payout"
  },
  "status": "approved",
  "sender": {
    "type": "individual",
    "first_name": "Hayley",
    "last_name": "Jones",
    "company_name": "YXZ International"
  },
  "scheme_id": "199254206471459",
  "instruction": {
    "funds_transfer_type": "AA"
  },
  "metadata": {
    "payout_ref": "MQIBN2"
  },
  "links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_8n2n4o4dsasergngxiq3cx4xtu"
    }
  }
}

```

Payout accepted response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The unique identifier for the payout.|
|requested_on|string(date-time)|true|none|The UTC date and time the payout was requested.|
|processed_on|string(date-time)¦null|true|none|If the scheme has finished processing the payout request, the UTC date and time the payout was approved or declined.|
|source|object|true|none|The source of the payout.|
|» type|string|true|none|The source used to fund the payout.|
|» id|string|true|none|The identifier for the currency account used to fund the payout.|
|» amount|integer|true|none|The amount to be paid out from the currency account.|
|» currency|string|true|none|The currency associated with the currency account, as a [three-letter ISO 4217 code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).|
|destination|object|true|none|The payout destination.|
|» bin|string|true|none|The first six or eight digits of the card number.|
|» type|string|true|none|The payout destination type.|
|» token|string|false|none|If `type` = `token`. The Checkout.com token  (eg a card, wallet or token)|
|» id|string|false|none|The payment source identifier. For example, a card source ID.|
|» expiry_year|integer|true|none|The card expiration year.|
|» expiry_month|integer|true|none|The card expiration month.|
|» account_holder|object|true|none|The account holder's details.|
|»» type|string|false|none|The account holder type.|
|»» first_name|string|false|none|Present if `destination.account_holder.type` is `individual`.|
|»» last_name|string|false|none|Present if `destination.account_holder.type` is `individual`.|
|»» company_name|string|false|none|Present if `destination.account_holder.type` is `corporate` or `government`.|
|» scheme|string|false|none|The card scheme.|
|» last4|string|true|none|The last four digits of the card number.|
|» fingerprint|string|true|none|The card's unique fingerprint.|
|» card_type|string|false|none|The card type.|
|» card_category|string|false|none|The card category.|
|» issuer|string|false|none|The issuer name.|
|» issuer_country|string|false|none|The issuer country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» product_id|string|false|none|The issuer or card scheme product identifier.|
|» product_type|string|false|none|The issuer or card scheme product type.|
|amount|integer|true|none|The amount to be paid out to the recipient. This will be equal to `destination.amount`.|
|currency|string|true|none|The destination currency, as a [three-letter ISO 4217 code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).|
|reference|string|false|none|An internal reference to identify the payout.|
|billing_descriptor|object|false|none|Details about the billing descriptor.|
|» reference|string|false|none|The dynamic billing descriptor displayed on the payout recipient's bank account statement. <br><br>Only alphanumeric characters are supported.|
|status|string|true|none|The status of the payout.|
|sender|object|false|none|Details about the payout sender.|
|» type|string|false|none|This field is only returned for payout requests for some [funds transfer types](https://www.checkout.com/docs/payments/request-payouts/card-payouts#Fund_Transfer_Types).|
|» first_name|string|false|none|Present if `sender.type` is `individual`.|
|» last_name|string|false|none|Present if `sender.type` is `individual`.|
|» company_name|string|false|none|Present if `sender.type` is `corporate` or `government`.|
|scheme_id|string|false|none|The scheme transaction identifier.|
|instruction|object|false|none|Details about the instruction for the payout.|
|» funds_transfer_type|string|false|none|Scheme categorisation of the client (FD, MT, AA etc.)|
|metadata|object|false|none|A set of key-value pairs to attach to the payment.<br><br>You can use this to store additional information in a structured format.|
|links|object|true|none|The links related to the payment.|
|» self|object|false|none|The payout URI.|
|»» href|string|true|none|The link URL.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|currency_account|
|type|token|
|type|id|
|type|card|
|type|individual|
|type|corporate|
|type|government|
|card_type|UNKNOWN|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|UNKNOWN|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|status|pending|
|status|approved|
|status|declined|
|type|individual|
|type|corporate|
|type|government|

<h2 id="tocS_CardPayoutItems">CardPayoutItems</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutitems"></a>
<a id="schema_CardPayoutItems"></a>
<a id="tocScardpayoutitems"></a>
<a id="tocscardpayoutitems"></a>

```json
[
  {
    "type": "digital",
    "sub_type": "stablecoin"
  }
]

```

The order's line items.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The item type. For example, `physical` or `digital`.<br><br>This field is used to provide item level metadata where applicable.|
|sub_type|string|false|none|The digital item type.<br><br>If `type` is set to `digital`, this field is required.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|digital|
|type|physical|
|sub_type|blockchain|
|sub_type|cbdc|
|sub_type|cryptocurrency|
|sub_type|nft|
|sub_type|stablecoin|

<h2 id="tocS_01_CardPayoutRequest_DestinationAccountHolderIndividual">01_CardPayoutRequest_DestinationAccountHolderIndividual</h2>
<!-- backwards compatibility -->
<a id="schema01_cardpayoutrequest_destinationaccountholderindividual"></a>
<a id="schema_01_CardPayoutRequest_DestinationAccountHolderIndividual"></a>
<a id="tocS01_cardpayoutrequest_destinationaccountholderindividual"></a>
<a id="tocs01_cardpayoutrequest_destinationaccountholderindividual"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string"
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the payout.|
|first_name|string|true|none|The account holder's first name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `first_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>- a single character<br>- all non-alphabetic characters<br><br>This field is not required if the first name is already stored with the `token` or payment instrument `id` provided in `destination`.|
|middle_name|string|false|none|The account holder's middle name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.|
|last_name|string|true|none|The account holder's last name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `last_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>  - a single character<br>  - all non-alphabetic characters<br><br><br>This field is not required if the last name is already stored with the `token` or payment instrument `id` provided in `destination`.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|

<h2 id="tocS_01_CardPayoutRequest_DestinationTypeCardAccountHolderIndividual">01_CardPayoutRequest_DestinationTypeCardAccountHolderIndividual</h2>
<!-- backwards compatibility -->
<a id="schema01_cardpayoutrequest_destinationtypecardaccountholderindividual"></a>
<a id="schema_01_CardPayoutRequest_DestinationTypeCardAccountHolderIndividual"></a>
<a id="tocS01_cardpayoutrequest_destinationtypecardaccountholderindividual"></a>
<a id="tocs01_cardpayoutrequest_destinationtypecardaccountholderindividual"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string",
  "date_of_birth": "stringstri",
  "country_of_birth": "st"
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the payout.|
|first_name|string|true|none|The account holder's first name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.  <br>This must be a valid legal name. The following formats for the `first_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>- a single character<br>- all non-alphabetic characters|
|middle_name|string|false|none|The account holder's middle name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.|
|last_name|string|true|none|The account holder's last name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `last_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all card payouts you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide United States ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://checkout.com/docs/four/resources/codes/country-codes).|
|» number|string|true|none|The digits for the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the payout recipient increases the likelihood of a successful payout.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|
|date_of_birth|string|false|none|The account holder's date of birth, in the format `YYYY-MM-DD`.|
|country_of_birth|string|false|none|The account holder's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_02_CardPayoutRequest_DestinationAccountHolderCorporate">02_CardPayoutRequest_DestinationAccountHolderCorporate</h2>
<!-- backwards compatibility -->
<a id="schema02_cardpayoutrequest_destinationaccountholdercorporate"></a>
<a id="schema_02_CardPayoutRequest_DestinationAccountHolderCorporate"></a>
<a id="tocS02_cardpayoutrequest_destinationaccountholdercorporate"></a>
<a id="tocs02_cardpayoutrequest_destinationaccountholdercorporate"></a>

```json
{
  "type": "corporate",
  "company_name": "string"
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the payout.|
|company_name|string|true|none|The corporate account holder's company name.<br><br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>  - a single character<br>  - all non-alphabetic characters|

#### Enumerated Values

|Property|Value|
|---|---|
|type|corporate|

<h2 id="tocS_02_CardPayoutRequest_DestinationTypeCardAccountHolderCorporate">02_CardPayoutRequest_DestinationTypeCardAccountHolderCorporate</h2>
<!-- backwards compatibility -->
<a id="schema02_cardpayoutrequest_destinationtypecardaccountholdercorporate"></a>
<a id="schema_02_CardPayoutRequest_DestinationTypeCardAccountHolderCorporate"></a>
<a id="tocS02_cardpayoutrequest_destinationtypecardaccountholdercorporate"></a>
<a id="tocs02_cardpayoutrequest_destinationtypecardaccountholdercorporate"></a>

```json
{
  "type": "corporate",
  "company_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string"
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the payout.|
|company_name|string|true|none|The corporate account holder's company name.<br>  <br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all card payouts you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide US ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://checkout.com/docs/four/resources/codes/country-codes).|
|» number|string|true|none|The digits of the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the payout recipient increases the likelihood of a successful payout.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|corporate|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_03_CardPayoutRequest_DestinationAccountHolderGovernment">03_CardPayoutRequest_DestinationAccountHolderGovernment</h2>
<!-- backwards compatibility -->
<a id="schema03_cardpayoutrequest_destinationaccountholdergovernment"></a>
<a id="schema_03_CardPayoutRequest_DestinationAccountHolderGovernment"></a>
<a id="tocS03_cardpayoutrequest_destinationaccountholdergovernment"></a>
<a id="tocs03_cardpayoutrequest_destinationaccountholdergovernment"></a>

```json
{
  "type": "government",
  "company_name": "string"
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the payout.|
|company_name|string|true|none|The government account holder's company name.<br><br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>  - a single character<br>  - all non-alphabetic characters|

#### Enumerated Values

|Property|Value|
|---|---|
|type|government|

<h2 id="tocS_03_CardPayoutRequest_DestinationTypeCardAccountHolderGovernment">03_CardPayoutRequest_DestinationTypeCardAccountHolderGovernment</h2>
<!-- backwards compatibility -->
<a id="schema03_cardpayoutrequest_destinationtypecardaccountholdergovernment"></a>
<a id="schema_03_CardPayoutRequest_DestinationTypeCardAccountHolderGovernment"></a>
<a id="tocS03_cardpayoutrequest_destinationtypecardaccountholdergovernment"></a>
<a id="tocs03_cardpayoutrequest_destinationtypecardaccountholdergovernment"></a>

```json
{
  "type": "government",
  "company_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string"
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the payout.|
|company_name|string|true|none|The account holder's company name.<br>  <br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all card payouts you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide United States ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://checkout.com/docs/four/resources/codes/country-codes).|
|» number|string|true|none|The digits for the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the payout recipient increases the likelihood of a successful payout.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|government|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_01_CardPayoutRequest_DestinationTypeCard">01_CardPayoutRequest_DestinationTypeCard</h2>
<!-- backwards compatibility -->
<a id="schema01_cardpayoutrequest_destinationtypecard"></a>
<a id="schema_01_CardPayoutRequest_DestinationTypeCard"></a>
<a id="tocS01_cardpayoutrequest_destinationtypecard"></a>
<a id="tocs01_cardpayoutrequest_destinationtypecard"></a>

```json
{
  "type": "card",
  "number": "string",
  "expiry_month": 0,
  "expiry_year": 0,
  "account_holder": {}
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout destination type.|
|number|string|true|none|The card number.|
|expiry_month|integer|true|none|The card's expiration month.|
|expiry_year|integer|true|none|The card's expiration year.|
|account_holder|object|true|none|The payout destination account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|

<h2 id="tocS_02_CardPayoutRequest_DestinationTypeNetworkToken">02_CardPayoutRequest_DestinationTypeNetworkToken</h2>
<!-- backwards compatibility -->
<a id="schema02_cardpayoutrequest_destinationtypenetworktoken"></a>
<a id="schema_02_CardPayoutRequest_DestinationTypeNetworkToken"></a>
<a id="tocS02_cardpayoutrequest_destinationtypenetworktoken"></a>
<a id="tocs02_cardpayoutrequest_destinationtypenetworktoken"></a>

```json
{
  "type": "network_token",
  "token": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "token_type": "vts",
  "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
  "eci": "05",
  "account_holder": {}
}

```

network_token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The destination type.|
|token|string|true|none|The network token's Primary Account Number (PAN).|
|expiry_month|integer|true|none|The network token's expiration month.|
|expiry_year|integer|true|none|The network token's expiration year.|
|token_type|string|true|none|The network token type.|
|cryptogram|string|false|none|The network token's Base64-encoded cryptographic identifier (TAVV).<br><br>The cryptogram is used by card schemes to validate the token verification result.|
|eci|string|false|none|The network token's Electronic Commerce Indicator (ECI) security level.|
|account_holder|object|true|none|The payout destination account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|network_token|
|token_type|vts|
|token_type|mdes|
|token_type|applepay|
|token_type|googlepay|

<h2 id="tocS_03_CardPayoutRequest_DestinationTypeId">03_CardPayoutRequest_DestinationTypeId</h2>
<!-- backwards compatibility -->
<a id="schema03_cardpayoutrequest_destinationtypeid"></a>
<a id="schema_03_CardPayoutRequest_DestinationTypeId"></a>
<a id="tocS03_cardpayoutrequest_destinationtypeid"></a>
<a id="tocs03_cardpayoutrequest_destinationtypeid"></a>

```json
{
  "type": "id",
  "id": "stringstringstringstringstring",
  "account_holder": {}
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout destination type.|
|id|string|true|none|The payment source ID. This will be an ID with the prefix `src_`.|
|account_holder|object|true|none|The payout destination account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|id|

<h2 id="tocS_04_CardPayoutRequest_DestinationTypeToken">04_CardPayoutRequest_DestinationTypeToken</h2>
<!-- backwards compatibility -->
<a id="schema04_cardpayoutrequest_destinationtypetoken"></a>
<a id="schema_04_CardPayoutRequest_DestinationTypeToken"></a>
<a id="tocS04_cardpayoutrequest_destinationtypetoken"></a>
<a id="tocs04_cardpayoutrequest_destinationtypetoken"></a>

```json
{
  "type": "token",
  "token": "stringstringstringstringstring",
  "account_holder": {}
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout destination type.|
|token|string|true|none|The Checkout.com card token ID. This will be an ID with the prefix `tok_`.|
|account_holder|object|true|none|The payout destination account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|token|

<h2 id="tocS_01_CardPayoutRequest_SenderAccountHolderIndividual">01_CardPayoutRequest_SenderAccountHolderIndividual</h2>
<!-- backwards compatibility -->
<a id="schema01_cardpayoutrequest_senderaccountholderindividual"></a>
<a id="schema_01_CardPayoutRequest_SenderAccountHolderIndividual"></a>
<a id="tocS01_cardpayoutrequest_senderaccountholderindividual"></a>
<a id="tocs01_cardpayoutrequest_senderaccountholderindividual"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "reference": "string",
  "reference_type": "other",
  "source_of_funds": "credit",
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "date_of_birth": "stringstri",
  "country_of_birth": "st",
  "nationality": "st"
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of entity performing the payout.|
|first_name|string|true|none|The sender's first name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `first_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>- a single character<br>- all non-alphabetic characters|
|middle_name|string|false|none|The sender's middle name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.|
|last_name|string|true|none|The sender's last name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` must exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `last_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|address|object|true|none|The sender's residential address.|
|» address_line1|string|true|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|true|none|The address city.|
|» state|string|false|none|The address state.<br><br>This field is required if `sender.address.country` is `US` or `CA`.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>This field is required if `sender.address.country` is `US`. You must provide US ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|true|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|reference|string|true|none|The unique identifier for the sender. For example, a customer number.<br><br>Only alphanumeric characters are supported.|
|reference_type|string|true|none|The type of identifier used as the `sender.reference`.|
|source_of_funds|string|true|none|The source of the funds used to fund the card payout.|
|identification|object|false|none|The sender's identification.<br><br>This field is required if the card's `issuer_country` is one of:<br><br>  - `AR` (Argentina)<br>  - `BR` (Brazil)<br>  - `CO` (Colombia)<br>  - `PE` (Peru)<br><br>To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).|
|» type|string|true|none|The type of identification for the sender.|
|» number|string|true|none|The sender's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the sender's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the sender's identification, in the format `YYYY-MM-DD`.|
|date_of_birth|string|false|none|The sender's date of birth, in the format `YYYY-MM-DD`.<br><br>This field is required for cross-border money transfers.|
|country_of_birth|string|false|none|The sender's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|nationality|number|false|none|The sender's nationality, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|

#### Enumerated Values

|Property|Value|
|---|---|
|reference_type|other|
|source_of_funds|credit|
|source_of_funds|debit|
|source_of_funds|prepaid|
|source_of_funds|deposit_account|
|source_of_funds|mobile_money_account|
|source_of_funds|cash|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_02_CardPayoutRequest_SenderAccountHolderCorporate">02_CardPayoutRequest_SenderAccountHolderCorporate</h2>
<!-- backwards compatibility -->
<a id="schema02_cardpayoutrequest_senderaccountholdercorporate"></a>
<a id="schema_02_CardPayoutRequest_SenderAccountHolderCorporate"></a>
<a id="tocS02_cardpayoutrequest_senderaccountholdercorporate"></a>
<a id="tocs02_cardpayoutrequest_senderaccountholdercorporate"></a>

```json
{
  "type": "corporate",
  "company_name": "string",
  "address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "reference": "string",
  "reference_type": "other",
  "source_of_funds": "credit",
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  }
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of entity performing the payout.|
|company_name|string|true|none|The corporate sender's company name.<br>    <br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|address|object|true|none|The sender's registered corporate address.|
|» address_line1|string|true|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|true|none|The address city.|
|» state|string|false|none|The address state.<br><br>This field is required if `sender.address.country` is `US` or `CA`.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>This field is required if `sender.address.country` is `US`. You must provide US ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|true|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|reference|string|true|none|The unique identifier for the sender. For example, a customer number.<br>  <br>Only alphanumeric characters are supported.|
|reference_type|string|true|none|The type of identifier used as the `reference`.|
|source_of_funds|string|true|none|The source of the funds used to fund the card payout.|
|identification|object|false|none|The sender's identification.<br><br>This field is required if the card's `issuer_country` is one of:<br><br>  - `AR` (Argentina)<br>  - `BR` (Brazil)<br>  - `CO` (Colombia)<br>  - `PE` (Peru)<br><br>To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).|
|» type|string|true|none|The type of identification for the sender.|
|» number|string|true|none|The sender's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the sender's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the sender's identification, in the format `YYYY-MM-DD`.|

#### Enumerated Values

|Property|Value|
|---|---|
|reference_type|other|
|source_of_funds|credit|
|source_of_funds|debit|
|source_of_funds|prepaid|
|source_of_funds|deposit_account|
|source_of_funds|mobile_money_account|
|source_of_funds|cash|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_03_CardPayoutRequest_SenderAccountHolderGovernment">03_CardPayoutRequest_SenderAccountHolderGovernment</h2>
<!-- backwards compatibility -->
<a id="schema03_cardpayoutrequest_senderaccountholdergovernment"></a>
<a id="schema_03_CardPayoutRequest_SenderAccountHolderGovernment"></a>
<a id="tocS03_cardpayoutrequest_senderaccountholdergovernment"></a>
<a id="tocs03_cardpayoutrequest_senderaccountholdergovernment"></a>

```json
{
  "type": "government",
  "company_name": "string",
  "address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "reference": "string",
  "reference_type": "other",
  "source_of_funds": "credit",
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  }
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of entity performing the payout.|
|company_name|string|true|none|The sender's company name.<br>      <br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|address|object|true|none|The sender's registered corporate address.|
|» address_line1|string|true|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|true|none|The address city.|
|» state|string|false|none|The address state.<br><br>This field is required if `sender.address.country` is `US` or `CA`.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>This field is required if `sender.address.country` is `US`. You must provide US ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|true|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|reference|string|true|none|The unique identifier for the sender. For example, a customer number.<br>Only alphanumeric characters are supported.|
|reference_type|string|true|none|The type of identifier used as the `reference`.|
|source_of_funds|string|true|none|The source of the funds used to fund the card payout.|
|identification|object|false|none|The sender's identification.<br><br>This field is required if the card's `issuer_country` is one of:<br><br>  - `AR` (Argentina)<br>  - `BR` (Brazil)<br>  - `CO` (Colombia)<br>  - `PE` (Peru)<br><br>To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).|
|» type|string|true|none|The type of identification for the sender.|
|» number|string|true|none|The sender's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the sender's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the sender's identification, in the format `YYYY-MM-DD`.|

#### Enumerated Values

|Property|Value|
|---|---|
|reference_type|other|
|source_of_funds|credit|
|source_of_funds|debit|
|source_of_funds|prepaid|
|source_of_funds|deposit_account|
|source_of_funds|mobile_money_account|
|source_of_funds|cash|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_CardPayoutRequest">CardPayoutRequest</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutrequest"></a>
<a id="schema_CardPayoutRequest"></a>
<a id="tocScardpayoutrequest"></a>
<a id="tocscardpayoutrequest"></a>

```json
{
  "source": {
    "type": "currency_account",
    "id": "stringstringstringstringstrin"
  },
  "destination": {},
  "amount": 0,
  "currency": "string",
  "instruction": {
    "funds_transfer_type": "string",
    "purpose": "family_support"
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin"
    }
  ],
  "processing_channel_id": "stringstringstringstringstrin",
  "sender": {},
  "reference": "string",
  "previous_payment_id": "pay_fun26akvvjjerahhctaq2uzhu4",
  "metadata": {},
  "segment": {
    "brand": "Acme Corporation",
    "business_category": "Inward Payments",
    "market": "UK"
  },
  "processing": {
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "processing_speed": "fast",
    "purchase_country": "GB"
  }
}

```

Card Payout

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|object|true|none|The source of the payout.|
|» type|string|true|none|The payout source type.|
|» id|string|true|none|The ID of the currency account that will fund the payout.|
|destination|[CardPayoutRequestDestination](#schemacardpayoutrequestdestination)|true|none|The destination of the payout.|
|amount|integer|false|none|The amount to pay out, in minor units. Use the [specific format](https://www.checkout.com/docs/payments/accept-payments/calculating-the-amount) for the `currency` you specify for the payout.|
|currency|string|true|none|The [three-letter ISO 4217 code](https://www.checkout.com/docs/developer-resources/codes/currency-codes) for the currency you want to pay out to the recipient.|
|instruction|object|true|none|Additional details about the payout instruction.|
|» funds_transfer_type|string|true|none|The [funds transfer type](https://www.checkout.com/docs/payments/request-payouts/card-payouts#Fund_Transfer_Types) code for the type of payout you're performing. <br><br>You can only use codes that have been assigned to you by the card schemes and Checkout.com, based on your business case and requirements. <br><br>If you have only been assigned one funds transfer type code, this field is optional.|
|» purpose|string|false|none|The purpose of the payout.<br><br>This field is required if the card's `issuer_country` is one of:<br><br>  - `AR` (Argentina)<br>  - `BD` (Bangladesh)<br>  - `CL` (Chile)<br>  - `CO` (Colombia)<br>  - `EG` (Egypt)<br>  - `IN` (India)<br>  - `MX` (Mexico)<br>  - `SA` (Saudi Arabia)<br><br>To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).|
|items|[CardPayoutItems](#schemacardpayoutitems)|false|none|The order's line items.|
|processing_channel_id|string|true|none|The unique identifier for the processing channel.|
|sender|[CardPayoutRequestSender](#schemacardpayoutrequestsender)|false|none|The sender of the payout.<br><br>This field is required for [money transfer](https://www.checkout.com/docs/payments/request-payouts/card-payouts#Fund_Transfer_Types) card payouts.|
|reference|string|false|none|A custom reference to identify the payout. For example, an order number.|
|previous_payment_id|string|false|none|The identifier of an existing payment from the recurring series, if the payout is a recurring payment that uses <a href="https://www.checkout.com/docs/previous/payments/accept-payments/pay-with-stored-details" target="blank">stored card details</a>.<br><br>If the card payout is linked to a previous <a href="https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction" target="_blank">Account Funding Transaction (AFT)</a>, you must include this field in your request with one of the following values:<br><br>- If the previous AFT was processed by Checkout.com, use the previous payment's ID.<br>- If the previous AFT was processed by another payment service provider (PSP), use the scheme's transaction ID.|
|metadata|object|false|none|Stores additional information about the transaction with custom fields.<br><br>You can also provide up to five user-defined fields (`udf1` to `udf5`), for your reporting purposes. `udf1` is also used for some of our risk rules. <br><br>You can only supply primitive data types with one level of depth. Fields of type `object` or `array` are not supported.|
|segment|[Segment](#schemasegment)|false|none|The dimension details about business segment for payment request. At least one dimension required.|
|processing|object|false|none|Returns information related to the processing of the payment.|
|» affiliate_id|string|false|none|The unique identifier for Visa-registered ramp providers.<br><br>Must only contain alphanumeric characters.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|» affiliate_url|string|false|none|The affiliate URL.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|» processing_speed|string|false|none|The speed at which the payout is processed. <br><br>Only applicable for <a href="https://www.checkout.com/docs/payments/manage-payments/refund-a-payment/refund-a-payment-without-a-reference">unreferenced refunds</a>.|
|» purchase_country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="_blank">ISO country code</a> of the purchase country.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|currency_account|
|purpose|family_support|
|purpose|expatriation|
|purpose|travel_and_tourism|
|purpose|education|
|purpose|medical_treatment|
|purpose|emergency_need|
|purpose|leisure|
|purpose|savings|
|purpose|gifts|
|purpose|donations|
|purpose|financial_services|
|purpose|it_services|
|purpose|investment|
|purpose|insurance|
|purpose|loan_payment|
|purpose|pension|
|purpose|royalties|
|purpose|other|
|purpose|income|
|processing_speed|fast|

<h2 id="tocS_CardPayoutRequestDestination">CardPayoutRequestDestination</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutrequestdestination"></a>
<a id="schema_CardPayoutRequestDestination"></a>
<a id="tocScardpayoutrequestdestination"></a>
<a id="tocscardpayoutrequestdestination"></a>

```json
{}

```

The destination of the payout.

### Properties

*None*

<h2 id="tocS_CardPayoutRequestSender">CardPayoutRequestSender</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutrequestsender"></a>
<a id="schema_CardPayoutRequestSender"></a>
<a id="tocScardpayoutrequestsender"></a>
<a id="tocscardpayoutrequestsender"></a>

```json
{}

```

The sender of the payout.

This field is required for [money transfer](https://www.checkout.com/docs/payments/request-payouts/card-payouts#Fund_Transfer_Types) card payouts.

### Properties

*None*

<h2 id="tocS_Cko-Request-Id">Cko-Request-Id</h2>
<!-- backwards compatibility -->
<a id="schemacko-request-id"></a>
<a id="schema_Cko-Request-Id"></a>
<a id="tocScko-request-id"></a>
<a id="tocscko-request-id"></a>

```json
"12345678-1234-1234-1234-123456789abc"

```

The unique identifier of the request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The unique identifier of the request|

<h2 id="tocS_Cko-Version">Cko-Version</h2>
<!-- backwards compatibility -->
<a id="schemacko-version"></a>
<a id="schema_Cko-Version"></a>
<a id="tocScko-version"></a>
<a id="tocscko-version"></a>

```json
"string"

```

The version of the API

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The version of the API|

<h2 id="tocS_ComplianceRequestDetails">ComplianceRequestDetails</h2>
<!-- backwards compatibility -->
<a id="schemacompliancerequestdetails"></a>
<a id="schema_ComplianceRequestDetails"></a>
<a id="tocScompliancerequestdetails"></a>
<a id="tocscompliancerequestdetails"></a>

```json
{
  "payment_id": "pay_fun26akvvjjerahhctaq2uzhu4",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
  "segment_id": "seg_siopnqocrc4ehgyer4tpepq5pp",
  "amount": "38.23",
  "currency": "HKD",
  "recipient_name": "Jia Tsang",
  "requested_on": "2026-02-04T15:46:44.9663151Z",
  "status": "responded",
  "fields": {
    "sender": [
      {
        "name": "date_of_birth",
        "type": "date",
        "value": "2000-01-01"
      }
    ],
    "recipient": [
      {
        "name": "date_of_birth",
        "type": "date",
        "value": "2000-01-01"
      }
    ]
  },
  "transaction_reference": "ref-abc",
  "sender_reference": "ref-def",
  "last_updated": "2026-02-04T15:47:18.6326970Z",
  "sender_name": "Ali Farid",
  "payment_type": "PayToCard"
}

```

Represents a compliance request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_id|string¦null|false|none|The compliance request's payment ID.|
|client_id|string¦null|false|none|The compliance request's client ID.|
|entity_id|string¦null|false|none|The compliance request's entity ID.|
|segment_id|string¦null|false|none|The compliance request's segment ID.|
|amount|string¦null|false|none|The payment's transaction amount.|
|currency|string¦null|false|none|The payment's transaction currency, as a three-letter <a href="https://www.checkout.com/docs/developer-resources/codes/currency-codes">ISO currency code</a>.|
|recipient_name|string¦null|false|none|The payment's recipient's name.|
|requested_on|string¦null|false|none|The date and time when the compliance request was initiated.|
|status|string¦null|false|none|The compliance request's status.|
|fields|[RequestedFields](#schemarequestedfields)|false|none|Groups the requested fields by party (sender/recipient).|
|transaction_reference|string¦null|false|none|The payment's transaction reference.|
|sender_reference|string¦null|false|none|The payment sender's reference.|
|last_updated|string¦null|false|none|The date and time when the compliance request was last updated.|
|sender_name|string¦null|false|none|The payment sender's name.|
|payment_type|string¦null|false|none|The payment type.|

<h2 id="tocS_ComplianceRequestRespondedField">ComplianceRequestRespondedField</h2>
<!-- backwards compatibility -->
<a id="schemacompliancerequestrespondedfield"></a>
<a id="schema_ComplianceRequestRespondedField"></a>
<a id="tocScompliancerequestrespondedfield"></a>
<a id="tocscompliancerequestrespondedfield"></a>

```json
{
  "name": "date_of_birth",
  "value": null,
  "not_available": false
}

```

Describes a single response field provided for a compliance request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string¦null|true|none|The field name being responded to.|
|value|any|true|none|The value provided for the field.|
|not_available|boolean|true|none|Indicates whether the value is unavailable for this field.|

<h2 id="tocS_ComplianceRequestRespondedFields">ComplianceRequestRespondedFields</h2>
<!-- backwards compatibility -->
<a id="schemacompliancerequestrespondedfields"></a>
<a id="schema_ComplianceRequestRespondedFields"></a>
<a id="tocScompliancerequestrespondedfields"></a>
<a id="tocscompliancerequestrespondedfields"></a>

```json
{
  "sender": [
    {
      "name": "date_of_birth",
      "value": null,
      "not_available": false
    }
  ],
  "recipient": [
    {
      "name": "date_of_birth",
      "value": null,
      "not_available": false
    }
  ]
}

```

Groups the responded fields by party (sender/recipient).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|sender|[[ComplianceRequestRespondedField](#schemacompliancerequestrespondedfield)]¦null|false|none|The fields provided for the sender.|
|recipient|[[ComplianceRequestRespondedField](#schemacompliancerequestrespondedfield)]¦null|false|none|The fields provided for the recipient.|

<h2 id="tocS_ComplianceRequestResponse">ComplianceRequestResponse</h2>
<!-- backwards compatibility -->
<a id="schemacompliancerequestresponse"></a>
<a id="schema_ComplianceRequestResponse"></a>
<a id="tocScompliancerequestresponse"></a>
<a id="tocscompliancerequestresponse"></a>

```json
{
  "fields": {
    "sender": [
      {
        "name": "date_of_birth",
        "value": null,
        "not_available": false
      }
    ],
    "recipient": [
      {
        "name": "date_of_birth",
        "value": null,
        "not_available": false
      }
    ]
  },
  "comments": "Optional comment"
}

```

Represents the payload used to respond to a compliance request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|fields|[ComplianceRequestRespondedFields](#schemacompliancerequestrespondedfields)|true|none|Groups the responded fields by party (sender/recipient).|
|comments|string¦null|false|none|Optional free-text comment provided with the response.|

<h2 id="tocS_RequestedField">RequestedField</h2>
<!-- backwards compatibility -->
<a id="schemarequestedfield"></a>
<a id="schema_RequestedField"></a>
<a id="tocSrequestedfield"></a>
<a id="tocsrequestedfield"></a>

```json
{
  "name": "date_of_birth",
  "type": "date",
  "value": "2000-01-01"
}

```

Describes a single requested field within a compliance request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string¦null|true|none|The requested field name.|
|type|string¦null|true|none|The requested field type. For example, "string" or "date".|
|value|string¦null|false|none|The current value for the requested field, if available.|

<h2 id="tocS_RequestedFields">RequestedFields</h2>
<!-- backwards compatibility -->
<a id="schemarequestedfields"></a>
<a id="schema_RequestedFields"></a>
<a id="tocSrequestedfields"></a>
<a id="tocsrequestedfields"></a>

```json
{
  "sender": [
    {
      "name": "date_of_birth",
      "type": "date",
      "value": "2000-01-01"
    }
  ],
  "recipient": [
    {
      "name": "date_of_birth",
      "type": "date",
      "value": "2000-01-01"
    }
  ]
}

```

Groups the requested fields by party (sender/recipient).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|sender|[[RequestedField](#schemarequestedfield)]¦null|true|none|The list of requested sender details.|
|recipient|[[RequestedField](#schemarequestedfield)]¦null|true|none|The list of requested recipient details.|

<h2 id="tocS_CustomerRequest">CustomerRequest</h2>
<!-- backwards compatibility -->
<a id="schemacustomerrequest"></a>
<a id="schema_CustomerRequest"></a>
<a id="tocScustomerrequest"></a>
<a id="tocscustomerrequest"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "tax_number": "1350693505279",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "summary": {
    "registration_date": "2023-05-01",
    "first_transaction_date": "2023-07-01",
    "last_payment_date": "2023-08-01",
    "total_order_count": 15,
    "last_payment_amount": 500,
    "is_premium_customer": true,
    "is_returning_customer": true,
    "lifetime_value": 500
  }
}

```

The customer's details. Required if `source.type` is `tamara`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The identifier of an existing customer|
|email|string(email)|false|none|The customer's email address. <br><br>If `source.type` is set to `sequra`, this field is required.<br><br>If `source.type` is set to `tamara`, this field is required and has a maximum length of 50 characters.|
|name|string|false|none|The customer's name. Required if `source.type` is:<br>  - `alipay_cn`<br>  - `alipay_hk`<br>  - `alipay_plus`<br>  - `dana`<br>  - `gcash`<br>  - `kakaopay`<br>  - `sequra`<br>  - `tamara`<br>  - `tng`<br>  - `truemoney`|
|tax_number|string|false|none|Contains the customer's value-added tax (VAT) registration number.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number. Required if `source.type` is `tamara`|
|summary|[CustomerSummary](#schemacustomersummary)|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`|

<h2 id="tocS_CustomerResponse">CustomerResponse</h2>
<!-- backwards compatibility -->
<a id="schemacustomerresponse"></a>
<a id="schema_CustomerResponse"></a>
<a id="tocScustomerresponse"></a>
<a id="tocscustomerresponse"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "johnsmith@example.com",
  "name": "John Smith",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "summary": {
    "registration_date": "2023-05-01",
    "first_transaction_date": "2023-07-01",
    "last_payment_date": "2023-08-01",
    "total_order_count": 15,
    "last_payment_amount": 500,
    "is_premium_customer": true,
    "is_returning_customer": true,
    "lifetime_value": 500
  }
}

```

Stored customer details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The customer's unique identifier. This can be passed as a source when making a payment.|
|email|string|false|none|The customer's email address.|
|name|string|false|none|The customer's name.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|summary|[CustomerSummary](#schemacustomersummary)|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`|

<h2 id="tocS_RetrieveCustomerAchInstrumentResponse">RetrieveCustomerAchInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecustomerachinstrumentresponse"></a>
<a id="schema_RetrieveCustomerAchInstrumentResponse"></a>
<a id="tocSretrievecustomerachinstrumentresponse"></a>
<a id="tocsretrievecustomerachinstrumentresponse"></a>

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "modified_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "account_type": "savings",
    "account_number": "4099999992",
    "bank_code": "211370545",
    "currency": "USD",
    "country": "US"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Smith Enterprises",
    "type": "individual"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The instrument type|
|id|string|true|none|The unique identifier of the payment source or destination. <br><br>You can use the `id` in future payments.|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers.|
|created_on|string(date-time)|true|none|The date and time the instrument was created.|
|modified_on|string(date-time)|true|none|The date and time the instrument was last modified.|
|vault_id|string|true|none|The Vault ID currently attached to the instrument.|
|instrument_data|object|true|none|The details of the bank account|
|» account_type|string|true|none|The type of Direct Debit account|
|» account_number|string|true|none|The account number of the Direct Debit account|
|» bank_code|string|true|none|The bank code of the Direct Debit account|
|» currency|string|true|none|The currency of the account|
|» country|string|true|none|The country of the account|
|account_holder|object|true|none|The account holder details|
|» first_name|string|true|none|First name. Required for individual account holder type|
|» last_name|string|true|none|Last name. Required for individual account holder type|
|» company_name|string|true|none|Company name. Required for corporate account holder type|
|» type|string|true|none|Account holder type|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|checking|
|type|individual|
|type|corporate|

<h2 id="tocS_RetrieveCustomerBankAccountInstrumentResponse">RetrieveCustomerBankAccountInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecustomerbankaccountinstrumentresponse"></a>
<a id="schema_RetrieveCustomerBankAccountInstrumentResponse"></a>
<a id="tocSretrievecustomerbankaccountinstrumentresponse"></a>
<a id="tocsretrievecustomerbankaccountinstrumentresponse"></a>

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  }
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|
|account_type|string|false|none|The type of account|
|account_number|string|false|none|Number (which can contain letters) that identifies the account|
|bank_code|string|false|none|Code that identifies the bank|
|branch_code|string|false|none|Code that identifies the bank branch|
|iban|string|false|none|Internationally agreed standard for identifying bank account|
|bban|string|false|none|The combination of bank code and/or branch code and account number|
|swift_bic|string|false|none|8 or 11 character code which identifies the bank or bank branch|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the account's currency|
|country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of where the account is based|
|account_holder|[AccountHolder](#schemaaccountholder)|false|none|The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).|
|bank|[BankDetails](#schemabankdetails)|false|none|Details of the bank|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|current|
|account_type|cash|

<h2 id="tocS_RetrieveCustomerCardInstrumentResponse">RetrieveCustomerCardInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecustomercardinstrumentresponse"></a>
<a id="schema_RetrieveCustomerCardInstrumentResponse"></a>
<a id="tocSretrievecustomercardinstrumentresponse"></a>
<a id="tocsretrievecustomercardinstrumentresponse"></a>

```json
{
  "type": "card",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "card_wallet_type": "googlepay"
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|The expiry year|
|scheme|string|false|none|The card scheme|
|last4|string|true|none|The last four digits of the card number|
|bin|string|true|none|The card issuer's bank identification number (BIN)|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank">two-letter ISO code</a>)|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|account_holder|object|false|none|The account holder details|
|» first_name|string|false|none|The first name of the account holder|
|» last_name|string|false|none|The last name of the account holder|
|» billing_address|[Address](#schemaaddress)|false|none|The billing address of the account holder|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the account holder|
|card_wallet_type|string|false|none|The type of digital wallet used for the card.|

#### Enumerated Values

|Property|Value|
|---|---|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|card_wallet_type|googlepay|
|card_wallet_type|applepay|

<h2 id="tocS_RetrieveCustomerInstrumentResponse">RetrieveCustomerInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecustomerinstrumentresponse"></a>
<a id="schema_RetrieveCustomerInstrumentResponse"></a>
<a id="tocSretrievecustomerinstrumentresponse"></a>
<a id="tocsretrievecustomerinstrumentresponse"></a>

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  }
}

```

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveCustomerBankAccountInstrumentResponse](#schemaretrievecustomerbankaccountinstrumentresponse)|false|none|Bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveCustomerCardInstrumentResponse](#schemaretrievecustomercardinstrumentresponse)|false|none|card instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveCustomerAchInstrumentResponse](#schemaretrievecustomerachinstrumentresponse)|false|none|card instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveCustomerSepaInstrumentResponse](#schemaretrievecustomersepainstrumentresponse)|false|none|card instrument response|

<h2 id="tocS_RetrieveCustomerResponse">RetrieveCustomerResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecustomerresponse"></a>
<a id="schema_RetrieveCustomerResponse"></a>
<a id="tocSretrievecustomerresponse"></a>
<a id="tocsretrievecustomerresponse"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "default": "src_wmlfc3zyhqzehihu7giusaaawu",
  "name": "Bruce Wayne",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "instruments": [
    {
      "type": "card",
      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
      "expiry_month": 6,
      "expiry_year": 2025,
      "scheme": "VISA",
      "last4": "9996",
      "bin": "454347",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer": "TEST STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith",
        "billing_address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "phone": {
          "country_code": "+1",
          "number": "415 555 2671"
        }
      },
      "card_wallet_type": "applepay"
    }
  ]
}

```

Customer retrieved successfully

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The customer's unique identifier|
|email|string(email)|true|none|The customer's email address|
|default|string|false|none|The ID for this customer's default instrument|
|name|string|false|none|The customer's name|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|metadata|object|false|none|A set of key-value pairs that is attached to a customer|
|instruments|[[RetrieveCustomerInstrumentResponse](#schemaretrievecustomerinstrumentresponse)]|false|none|The details of the instruments linked to this customer|

<h2 id="tocS_RetrieveCustomerSepaInstrumentResponse">RetrieveCustomerSepaInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecustomersepainstrumentresponse"></a>
<a id="schema_RetrieveCustomerSepaInstrumentResponse"></a>
<a id="tocSretrievecustomersepainstrumentresponse"></a>
<a id="tocsretrievecustomersepainstrumentresponse"></a>

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "modified_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "account_number": "FR2810096000509685512959O86",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "recurring",
    "mandate_id": "1234567890",
    "date_of_signature": "2021-01-01"
  },
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The instrument type|
|id|string|true|none|The unique identifier of the payment source or destination. <br><br>You can use the `id` in future payments.|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers.|
|created_on|string(date-time)|true|none|The date and time the instrument was created.|
|modified_on|string(date-time)|true|none|The date and time the instrument was last modified.|
|vault_id|string|true|none|The Vault ID currently attached to the instrument.|
|instrument_data|object|false|none|The details of the SEPA mandate.|
|» account_number|string|true|none|The International Bank Account Number (IBAN) of the account.|
|» country|string|true|none|The country of the account.|
|» currency|string|true|none|The currency of the account.|
|» payment_type|string|true|none|The type of payment.|
|» mandate_id|string|true|none|The mandate ID.<br><br>If this value was not provided when the instrument was created, it may take up to five seconds for the generated mandate ID to be available.|
|» date_of_signature|string(date)|true|none|The date the mandate was signed.<br><br>If `mandate_id` was not provided when the instrument was created, it may take up to five seconds for the generated date of signature to be available.|
|account_holder|object|false|none|The account holder's details.|
|» first_name|string|true|none|The first name of the account holder.|
|» last_name|string|true|none|The last name of the account holder.|
|» billing_address|object|true|none|The billing address of the account holder.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|true|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» zip|string|true|none|The address ZIP or postal code.|
|»» country|string|true|none|The address country.|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|recurring|
|payment_type|regular|

<h2 id="tocS_StoreCustomerRequest">StoreCustomerRequest</h2>
<!-- backwards compatibility -->
<a id="schemastorecustomerrequest"></a>
<a id="schema_StoreCustomerRequest"></a>
<a id="tocSstorecustomerrequest"></a>
<a id="tocsstorecustomerrequest"></a>

```json
{
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "default": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

Create a customer

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|email|string(email)|true|none|The customer's email address|
|name|string|false|none|The customer's name|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|metadata|object|false|none|Allows you to store additional information about a customer. You can include a maximum of 20 key-value pairs. Each key and value can be up to 100 characters long.|
|default|string|false|none|The ID of the instrument you want to set as this customer's default instrument|

<h2 id="tocS_StoreCustomerResponse">StoreCustomerResponse</h2>
<!-- backwards compatibility -->
<a id="schemastorecustomerresponse"></a>
<a id="schema_StoreCustomerResponse"></a>
<a id="tocSstorecustomerresponse"></a>
<a id="tocsstorecustomerresponse"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
}

```

Customer created successfully

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The customer's unique identifier|

<h2 id="tocS_UpdateCustomerDetailsRequest">UpdateCustomerDetailsRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatecustomerdetailsrequest"></a>
<a id="schema_UpdateCustomerDetailsRequest"></a>
<a id="tocSupdatecustomerdetailsrequest"></a>
<a id="tocsupdatecustomerdetailsrequest"></a>

```json
{
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "default": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

The customer's details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|email|string(email)|false|none|The email address of the customer|
|name|string|false|none|The name of the customer|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|metadata|object|false|none|Allows you to store additional information about a customer. You can include a maximum of 20 key-value pairs. Each key and value can be up to 100 characters long. Providing metadata in this request will replace any existing stored for this customer.|
|default|string|false|none|The ID of this customer's default instrument|

<h2 id="tocS_DatedObject">DatedObject</h2>
<!-- backwards compatibility -->
<a id="schemadatedobject"></a>
<a id="schema_DatedObject"></a>
<a id="tocSdatedobject"></a>
<a id="tocsdatedobject"></a>

```json
{
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|created_on|string(date-time)|true|read-only|The date and time when the resource was created, in UTC. <br/>Format – `yyyy-mm-ddThh:mm:ss.sss`|
|modified_on|string(date-time)|true|read-only|The date and time when the resource was modified, in UTC. <br/>Format – `yyyy-mm-ddThh:mm:ss.sss`|

<h2 id="tocS_CompellingEvidence">CompellingEvidence</h2>
<!-- backwards compatibility -->
<a id="schemacompellingevidence"></a>
<a id="schema_CompellingEvidence"></a>
<a id="tocScompellingevidence"></a>
<a id="tocscompellingevidence"></a>

```json
{
  "merchandise_or_service": "Merchandise",
  "merchandise_or_service_desc": "Subscription payment",
  "merchandise_or_service_provided_date": "2024-07-25T11:23:06Z",
  "shipping_delivery_status": "shipped",
  "tracking_information": "129481229312",
  "user_id": "user@cko.com",
  "ip_address": "192.168.1.150",
  "device_id": "device_123_x_1220",
  "shipping_address": {
    "address": "string",
    "address2": "string",
    "city": "string",
    "state_region": "st",
    "postal_code": "string",
    "country": "826"
  },
  "historical_transactions": [
    {
      "historical_arn": "stringstringstringstri",
      "merchandise_or_service_desc": "string"
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|merchandise_or_service|string|true|none|Value can be either "Merchandise" or "Services".|
|merchandise_or_service_desc|string|true|none|Description of the merchandise or service that this transaction was for.|
|merchandise_or_service_provided_date|string(date-time)|true|none|The date and time the merchandise or service was provided, in UTC format.|
|shipping_delivery_status|string|false|none|Status of the order. Only valid if merchandise_or_services is equal to "Merchandise”.<br>  * `not_shipped`<br>  * `back_ordered`<br>  * `in_transit`<br>  * `partial_shipped`<br>  * `shipped`<br>  * `cancelled`<br>  * `shipping_exception`<br>  * `picked_up_by_customer`<br>  * `delivered`<br>  * `other`|
|tracking_information|string|false|none|Tracking of the order. Only valid if merchandise_or_services is equal to "Merchandise”. Required if the shipping_delivery_status is any of the following:<br>  * `in_transit`<br>  * `partial_shipped`<br>  * `shipped`<br>  * `shipping_exception`<br>  * `delivered`<br>  * `other`|
|user_id|string|false|none|User ID is synonymous to Customer Account/log in ID.|
|ip_address|string|false|none|IpAddress used in the transaction. Should be either IPV4 or IPV6.|
|device_id|string|false|none|Device used in the transaction.|
|shipping_address|object|false|none|The shipping address provided for this transaction.|
|» address|string|true|none|It describes the main address.|
|» address2|string|false|none|Any additional information about the address.|
|» city|string|true|none|The name of the city.|
|» state_region|string|false|none|The state for the address. Required if the country is "US" or "CA" (Canada).|
|» postal_code|string|true|none|The postal code of the address.|
|» country|string|true|none|The three digit ISO code of the country.|
|historical_transactions|[object]|true|none|List of historical transactions. At least two transactions.|
|» historical_arn|string|true|none|The Acquirer reference number (ARN) of the capture transaction.|
|» merchandise_or_service_desc|string|true|none|Description of the merchandise or service that this transaction was for.|

<h2 id="tocS_Dispute">Dispute</h2>
<!-- backwards compatibility -->
<a id="schemadispute"></a>
<a id="schema_Dispute"></a>
<a id="tocSdispute"></a>
<a id="tocsdispute"></a>

```json
{
  "id": "dsp_rbhwd2qrg13uhrp2newfarfder",
  "entity_id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "sub_entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
  "reference": "dispute-09",
  "category": "fraudulent",
  "amount": 999,
  "currency": "GBP",
  "reason_code": "10.4",
  "status": "evidence_required",
  "resolved_reason": "already_refunded",
  "relevant_evidence": [
    [
      "proof_of_delivery_or_service",
      "compelling_evidence"
    ]
  ],
  "evidence_required_by": "2018-08-21T00:00:00Z",
  "received_on": "2018-08-01T04:00:10Z",
  "last_update": "2018-08-04T10:53:13Z",
  "is_ce_candidate": true,
  "payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "action_id": "act_mbabizu24mvu3mela5njyhpit4",
    "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
    "amount": 999,
    "currency": "GBP",
    "reference": "string",
    "method": "Visa",
    "acquirer_reference_number": "AA246873253573571073808",
    "mcc": "5021",
    "3ds": {
      "version": "2.1.0",
      "enrolled": "Y"
    },
    "eci": "06",
    "has_refund": true,
    "processed_on": "2018-08-01T08:18:10Z"
  },
  "evidence_list": [
    {
      "file": "string",
      "text": "string",
      "type": "proof_of_delivery_or_service",
      "dispute_id": "string"
    }
  ],
  "evidence_bundle": [
    {
      "dispute_id": "dsp_rbhwd2qrg13uhrp2newfab",
      "filename": "string",
      "file_size": 0,
      "is_file_oversized": true,
      "created_at": "2019-08-24T14:15:22Z",
      "modified_at": "2019-08-24T14:15:22Z"
    }
  ],
  "segment_id": "string",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
    },
    "evidence": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf/evidence"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The dispute identifier. This is the same as the payment action ID.|
|entity_id|string|false|none|The client entity linked to this dispute.|
|sub_entity_id|string|false|none|The sub-entity linked to this dispute.|
|reference|string|false|none|An optional reference to identify the dispute.|
|category|string|false|none|The reason for the dispute. [Find out more](https://www.checkout.com/docs/risk-management/disputes/responding-to-disputes/dispute-reasons-and-recommended-evidence)|
|amount|number|false|none|The amount that is being disputed, in the processing currency. This amount can be positive or negative depending on the type of transaction the dispute is received against.|
|currency|string|false|none|The processing currency.|
|reason_code|string|false|none|The reason code provided by the card scheme.|
|status|string|false|none|The current status of the dispute.|
|resolved_reason|string|false|none|If the dispute is automatically resolved, `resolved_reason` will contain the reason why it was resolved.|
|relevant_evidence|[array]|false|none|<i>This list and the dispute categories will change over time. Your evidence logic should be informed by this field, not hard coded.</i>|
|evidence_required_by|string(date-time)|false|none|The deadline by which you must respond to the dispute. <br><br>This is equal to the `received_on` date + `n` calendar days, where `n` is the number of days set by the scheme or acquirer.|
|received_on|string(date-time)|false|none|The date and time at which the dispute was issued.|
|last_update|string(date-time)|false|none|The date and time at which the dispute was last updated.|
|is_ce_candidate|boolean|false|none|Indicates whether the dispute is eligible for compelling evidence.|
|payment|[PaymentData](#schemapaymentdata)|false|none|Provides details for the payment linked to the dispute.|
|evidence_list|[object]|false|none|List of evidence files provided for the dispute.|
|» file|string|false|none|The file's unique identifier.|
|» text|string|false|none|A description for the evidence file.|
|» type|string|false|none|The type of evidence the file is intended to support.|
|» dispute_id|string|false|none|none|
|evidence_bundle|[object]|false|none|The bundled evidence file sent to the scheme.|
|» dispute_id|string|false|none|The unique identifier of the dispute associated with the bundle.|
|» filename|string|false|none|The name of the bundled evidence file.|
|» file_size|number|false|none|The file size of the bundled evidence file, in KB.|
|» is_file_oversized|boolean|false|none|Specifies whether the bundled file exceeded the maximum file size limit.|
|» created_at|string(date-time)|false|none|The date and time the file was created, in UTC format.|
|» modified_at|string(date-time)|false|none|The date and time the file was last modified, in UTC format.|
|segment_id|string|false|none|The unique identifier of the business segment that the payment belongs to.|
|_links|object|false|none|none|
|» self|object|false|none|The dispute retrieval endpoint.|
|»» href|any|false|none|none|
|» evidence|object|false|none|The dispute evidence retrieval endpoint.|
|»» href|any|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|category|fraudulent|
|category|unrecognized|
|category|canceled_recurring|
|category|product_service_not_received|
|category|not_as_described|
|category|credit_not_issued|
|category|duplicate|
|category|incorrect_amount|
|category|general|
|status|evidence_required|
|status|evidence_under_review|
|status|resolved|
|status|won|
|status|lost|
|status|canceled|
|status|expired|
|status|accepted|
|status|arb_evidence_submitted|
|status|arbitration_under_review|
|status|arbitration_won|
|status|arbitration_lost|
|resolved_reason|rapid_dispute_resolution|
|resolved_reason|negative_amount|
|resolved_reason|already_refunded|
|type|proof_of_delivery_or_service|
|type|invoice_or_receipt|
|type|invoice_showing_distinct_transactions|
|type|customer_communication|
|type|refund_or_cancellation_policy|
|type|recurring_transaction_agreement|
|type|proof_of_delivery_or_service_date|
|type|additional_evidence|
|type|compelling_evidence|
|type|arbitration_no_review|
|type|arbitration_review_required|

<h2 id="tocS_DisputePaged">DisputePaged</h2>
<!-- backwards compatibility -->
<a id="schemadisputepaged"></a>
<a id="schema_DisputePaged"></a>
<a id="tocSdisputepaged"></a>
<a id="tocsdisputepaged"></a>

```json
{
  "limit": 10,
  "skip": 10,
  "from": "2018-08-12T01:15:56Z",
  "to": "2018-08-13T11:09:01Z",
  "id": "dsp_rbhwd2qrg13uhrp2newfcd",
  "entity_ids": "ent_wxglze3wwywujg4nna5fb7ldli,ent_vkb5zcy64zoe3cwfmaqvqyqyku",
  "sub_entity_ids": "ent_uzm3uxtssvmuxnyrfdffcyjxeu,ent_hy5wtzwzeuwefmsnjtdhw4scfi",
  "processing_channel_ids": "pc_uzm3uxtssvmuxnyrfdffcyjxeu,pc_hy5wtzwzeuwefmsnjtdhw4scfi",
  "segment_ids": "string",
  "statuses": "evidence_required,evidence_under_review",
  "payment_id": "pay_lzmo6p0i3612judj754w1ngtil",
  "payment_reference": "th7zxa1kcnqmes8",
  "payment_arn": "74548998294293193445538",
  "payment_mcc": "5021",
  "this_channel_only": true,
  "total_count": 1,
  "data": [
    {
      "id": "dsp_rbhwd2qrg13uhrp2newfafreds",
      "entity_id": "ent_wxglze3wwywujg4nna5fb7ldli",
      "sub_entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
      "processing_channel": "pc_uzm3uxtssvmuxnyrfdffcyjxeu",
      "segment_id": "string",
      "category": "fraudulent",
      "status": "evidence_required",
      "amount": 999,
      "currency": "GBP",
      "reason_code": "10.4",
      "payment_id": "pay_88cb4e671m1da22e9bbbyx",
      "payment_action_id": "act_mbabizu24mvu3mela5njyhpit4",
      "payment_reference": "th7zxa1kcnqmes8",
      "payment_arn": "74548998294293193445538",
      "payment_mcc": "5021",
      "payment_method": "VISA",
      "evidence_required_by": "2018-08-22T00:00:00Z",
      "received_on": "2018-08-01T01:15:56Z",
      "last_update": "2018-08-12T04:15:56Z",
      "resolved_reason": "already_refunded",
      "is_ce_candidate": true,
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
        }
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|limit|integer|false|none|The numbers of items to return.|
|skip|integer|false|none|The number of results to skip.|
|from|string(date-time)|false|none|The date and time from which to filter disputes, based on the dispute's `last_update` field.|
|to|string(date-time)|false|none|The date and time until which to filter disputes, based on the dispute's `last_update` field.|
|id|string|false|none|The unique identifier of the dispute.|
|entity_ids|string|false|none|One or more comma-separated client entities. This works like a logical *OR* operator.|
|sub_entity_ids|string|false|none|One or more comma-separated sub-entities. This works like a logical *OR* operator.|
|processing_channel_ids|string|false|none|One or more comma-separated processing channels. This works like a logical *OR* operator.|
|segment_ids|string|false|none|One or more comma-separated segments. This works like a logical *OR* operator.|
|statuses|string|false|none|One or more comma-separated statuses. This works like a logical *OR* operator.|
|payment_id|string|false|none|The unique identifier of the payment.|
|payment_reference|string|false|none|An optional reference (such as an order ID) that you can use later to identify the payment. Previously known as `TrackId`.|
|payment_arn|string|false|none|The acquirer reference number (ARN) that you can use to query the issuing bank.|
|payment_mcc|string|false|none|The merchant category code (MCC) of the payment (ISO 18245).|
|this_channel_only|boolean|false|none|If `true`, only returns disputes of the specific channel that the secret key is associated with. Otherwise, returns all disputes for that business.|
|total_count|integer|false|none|The total number of disputes retrieved (without taking into consideration skip and limit parameters).|
|data|[[DisputeSummary](#schemadisputesummary)]|false|none|The list of disputes.|

<h2 id="tocS_DisputeSummary">DisputeSummary</h2>
<!-- backwards compatibility -->
<a id="schemadisputesummary"></a>
<a id="schema_DisputeSummary"></a>
<a id="tocSdisputesummary"></a>
<a id="tocsdisputesummary"></a>

```json
{
  "id": "dsp_rbhwd2qrg13uhrp2newfafreds",
  "entity_id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "sub_entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
  "processing_channel": "pc_uzm3uxtssvmuxnyrfdffcyjxeu",
  "segment_id": "string",
  "category": "fraudulent",
  "status": "evidence_required",
  "amount": 999,
  "currency": "GBP",
  "reason_code": "10.4",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "payment_action_id": "act_mbabizu24mvu3mela5njyhpit4",
  "payment_reference": "th7zxa1kcnqmes8",
  "payment_arn": "74548998294293193445538",
  "payment_mcc": "5021",
  "payment_method": "VISA",
  "evidence_required_by": "2018-08-22T00:00:00Z",
  "received_on": "2018-08-01T01:15:56Z",
  "last_update": "2018-08-12T04:15:56Z",
  "resolved_reason": "already_refunded",
  "is_ce_candidate": true,
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The dispute identifier. This is the same as the action ID in the reconciliation API or the charge ID in the Hub.|
|entity_id|string|false|none|The client entity linked to this dispute|
|sub_entity_id|string|false|none|The sub-entity linked to this dispute|
|processing_channel|string|false|none|The processing channel linked to the dispute.|
|segment_id|string|false|none|none|
|category|string|false|none|The reason for the dispute. [Find out more](https://www.checkout.com/docs/risk-management/disputes/responding-to-disputes/dispute-reasons-and-recommended-evidence)|
|status|string|false|none|The current status of the dispute|
|amount|number|false|none|The amount that is being disputed, in the processing currency|
|currency|string|false|none|The currency the payment was made in|
|reason_code|string|false|none|The reason code provided by the card scheme|
|payment_id|string|false|none|The unique payment identifier|
|payment_action_id|string|false|none|The unique identifier of the payment action|
|payment_reference|string|false|none|An optional reference (such as an order ID) a merchant can use to later identify the charge. Previously known as TrackId|
|payment_arn|string|false|none|The acquirer reference number that can be used to query the issuing bank|
|payment_mcc|string|false|none|The merchant category code (MCC) of the payment (ISO 18245)|
|payment_method|string|false|none|The payment method/card scheme|
|evidence_required_by|string(date-time)|false|none|The deadline by which to respond to the dispute. This corresponds to `received_on` + `n`, where `n` is a number of calendar days set by the scheme/acquirer|
|received_on|string(date-time)|false|none|The date and time at which the dispute was issued|
|last_update|string(date-time)|false|none|The date and time at which the dispute was last updated|
|resolved_reason|string|false|none|If the dispute is automatically resolved, `resolved_reason` will contain the reason it was resolved|
|is_ce_candidate|boolean|false|none|Specifies whether the dispute is eligible for <a href="https://support.checkout.com/hc/en-us/articles/14323750143634-Visa-Compelling-Evidence-3-0-Overview">Visa Compelling Evidence</a>.|
|_links|object|false|none|none|
|» self|object|false|none|The dispute retrieval endpoint|
|»» href|any|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|category|fraudulent|
|category|unrecognized|
|category|canceled_recurring|
|category|product_service_not_received|
|category|not_as_described|
|category|credit_not_issued|
|category|duplicate|
|category|incorrect_amount|
|category|general|
|status|evidence_required|
|status|evidence_under_review|
|status|resolved|
|status|won|
|status|lost|
|status|canceled|
|status|expired|
|status|accepted|
|status|arbitration_under_review|
|status|arbitration_won|
|status|arbitration_lost|
|resolved_reason|rapid_dispute_resolution|
|resolved_reason|negative_amount|
|resolved_reason|already_refunded|

<h2 id="tocS_Evidence">Evidence</h2>
<!-- backwards compatibility -->
<a id="schemaevidence"></a>
<a id="schema_Evidence"></a>
<a id="tocSevidence"></a>
<a id="tocsevidence"></a>

```json
{
  "proof_of_delivery_or_service_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_text": "Description of evidence available at: http://checkout.com/evidenceDocument.pdf",
  "proof_of_delivery_or_service_date_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_date_text": "Copy of the customer receipt showing the merchandise was delivered on 2018-12-20",
  "invoice_or_receipt_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_or_receipt_text": "Copy of the invoice",
  "invoice_showing_distinct_transactions_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_showing_distinct_transactions_text": "Copy of invoice #1244 showing two transactions",
  "customer_communication_file": "file_jmbfgkjromvcrn9t4qu4",
  "customer_communication_text": "Copy of an email exchange with the cardholder",
  "refund_or_cancellation_policy_file": "file_jmbfgkjromvcrn9t4qu4",
  "refund_or_cancellation_policy_text": "Copy of the refund policy",
  "recurring_transaction_agreement_file": "file_jmbfgkjromvcrn9t4qu4",
  "recurring_transaction_agreement_text": "Copy of the recurring transaction agreement",
  "additional_evidence_file": "file_jmbfgkjromvcrn9t4qu4",
  "additional_evidence_text": "Scanned document",
  "arbitration_no_review_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_no_review_text": "Evidence for arbitration",
  "arbitration_review_required_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_review_required_text": "Evidence for arbitration",
  "compelling_evidence": {
    "merchandise_or_service": "Merchandise",
    "merchandise_or_service_desc": "Subscription payment",
    "merchandise_or_service_provided_date": "2024-07-25T11:23:06Z",
    "shipping_delivery_status": "shipped",
    "tracking_information": "129481229312",
    "user_id": "user@cko.com",
    "ip_address": "192.168.1.150",
    "device_id": "device_123_x_1220",
    "shipping_address": {
      "address": "string",
      "address2": "string",
      "city": "string",
      "state_region": "st",
      "postal_code": "string",
      "country": "826"
    },
    "historical_transactions": [
      {
        "historical_arn": "stringstringstringstri",
        "merchandise_or_service_desc": "string"
      }
    ]
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|proof_of_delivery_or_service_file|string|false|none|A file containing proof of delivery of goods or services.|
|proof_of_delivery_or_service_text|string|false|none|A brief description of the file provided in `proof_of_delivery_or_service_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|proof_of_delivery_or_service_date_file|string|false|none|A file showing the delivery date of the provided service or merchandise.|
|proof_of_delivery_or_service_date_text|string|false|none|A brief description of the file provided in `proof_of_delivery_or_service_date_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|invoice_or_receipt_file|string|false|none|A file containing an invoice or receipt.|
|invoice_or_receipt_text|string|false|none|A brief description of the file provided in `invoice_or_receipt_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|invoice_showing_distinct_transactions_file|string|false|none|A file containing an invoice which shows two distinct transactions.|
|invoice_showing_distinct_transactions_text|string|false|none|A brief description of the file provided in `invoice_showing_distinct_transactions_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|customer_communication_file|string|false|none|A file containing proof of communication with the customer.|
|customer_communication_text|string|false|none|A brief description of the file provided in `customer_communication_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|refund_or_cancellation_policy_file|string|false|none|A file containing the refund or cancellation policy.|
|refund_or_cancellation_policy_text|string|false|none|A brief description of the file provided in `refund_or_cancellation_policy_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|recurring_transaction_agreement_file|string|false|none|A file containing the recurring transaction agreement.|
|recurring_transaction_agreement_text|string|false|none|A brief description of the file provided in `recurring_transaction_agreement_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|additional_evidence_file|string|false|none|A file containing additional supporting documents.|
|additional_evidence_text|string|false|none|A brief description of the file provided in `additional_evidence_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|arbitration_no_review_files|[string]|false|none|The evidence to submit directly to the scheme when you escalate the dispute to arbitration.<br><br>Evidence you provide with this field is submitted directly to the scheme.|
|arbitration_no_review_text|string|false|none|A brief description of the file provided in `arbitration_no_review_files`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|arbitration_review_required_files|[string]|false|none|The evidence to submit to the Checkout.com Dispute Resolution team for review. <br><br>You'll be advised on the likelihood of success if you choose to escalate the dispute to arbitration.|
|arbitration_review_required_text|string|false|none|A brief description of the file provided in `arbitration_review_required_files`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|compelling_evidence|[CompellingEvidence](#schemacompellingevidence)|false|none|Used to resolve friendly fraud with merchant historical transactions.|

<h2 id="tocS_File">File</h2>
<!-- backwards compatibility -->
<a id="schemafile"></a>
<a id="schema_File"></a>
<a id="tocSfile"></a>
<a id="tocsfile"></a>

```json
{
  "file": "file=@/path/receipt.png;type=image/png",
  "purpose": "dispute_evidence"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|file|string|true|none|The path of the file to upload, and its type. <br><i>This must be a local path.</i>|
|purpose|string|true|none|The purpose of the file upload. <br><br>If the file is a supporting document for a dispute, set this to `dispute_evidence`. If the file is a supporting document for arbitration, set this to `arbitration_evidence`.|

<h2 id="tocS_FilePurpose">FilePurpose</h2>
<!-- backwards compatibility -->
<a id="schemafilepurpose"></a>
<a id="schema_FilePurpose"></a>
<a id="tocSfilepurpose"></a>
<a id="tocsfilepurpose"></a>

```json
"dispute_evidence"

```

The purpose of the file. 

The value `submitted_evidence` represents the finalized evidence which was uploaded to the scheme portals.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The purpose of the file. <br><br>The value `submitted_evidence` represents the finalized evidence which was uploaded to the scheme portals.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|dispute_evidence|
|*anonymous*|arbitration_evidence|
|*anonymous*|submitted_evidence|

<h2 id="tocS_FileResult">FileResult</h2>
<!-- backwards compatibility -->
<a id="schemafileresult"></a>
<a id="schema_FileResult"></a>
<a id="tocSfileresult"></a>
<a id="tocsfileresult"></a>

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "filename": "receipt.jpg",
  "purpose": "dispute_evidence",
  "size": 1024,
  "uploaded_on": "2019-05-17T16:48:52Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    },
    "download": {
      "href": "https://file-bucket.s3.eu-west-1.amazonaws.com/ucdac/ucdac/6lbss42ezvoufcb2beo76rvwly?X-Amz-Expires=3600&x-amz-security-token=FQoDYXdzENL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEa"
    }
  }
}

```

File was retrieved successfully

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The file identifier|
|filename|string|false|none|The filename, including its extension|
|purpose|[FilePurpose](#schemafilepurpose)|false|none|The purpose of the file. <br><br>The value `submitted_evidence` represents the finalized evidence which was uploaded to the scheme portals.|
|size|integer|false|none|The size of the file upload object (in bytes)|
|uploaded_on|string(date-time)|false|none|The date and time file was uploaded (in UTC)|
|_links|object|false|none|none|
|» self|object|false|none|The file information retrieval URL|
|»» href|any|false|none|none|
|» download|object|false|none|The temporary file download URL. This expires after 60 minutes|
|»» href|any|false|none|none|

<h2 id="tocS_FileUploadResponse">FileUploadResponse</h2>
<!-- backwards compatibility -->
<a id="schemafileuploadresponse"></a>
<a id="schema_FileUploadResponse"></a>
<a id="tocSfileuploadresponse"></a>
<a id="tocsfileuploadresponse"></a>

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    }
  }
}

```

File uploaded successfully

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The file identifier|
|_links|object|false|none|none|
|» self|object|false|none|The file information retrieval URL|
|»» href|any|false|none|none|

<h2 id="tocS_PaymentData">PaymentData</h2>
<!-- backwards compatibility -->
<a id="schemapaymentdata"></a>
<a id="schema_PaymentData"></a>
<a id="tocSpaymentdata"></a>
<a id="tocspaymentdata"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "action_id": "act_mbabizu24mvu3mela5njyhpit4",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 999,
  "currency": "GBP",
  "reference": "string",
  "method": "Visa",
  "acquirer_reference_number": "AA246873253573571073808",
  "mcc": "5021",
  "3ds": {
    "version": "2.1.0",
    "enrolled": "Y"
  },
  "eci": "06",
  "has_refund": true,
  "processed_on": "2018-08-01T08:18:10Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The payment's unique identifier|
|action_id|string|false|none|The unique identifier of the payment action|
|processing_channel_id|string|false|none|The processing channel used for the payment.|
|amount|number|false|none|The amount that is being disputed, in the processing currency|
|currency|string|false|none|The payment currency|
|reference|string|false|none|An optional reference to identify the payment.|
|method|string|false|none|The payment method used|
|acquirer_reference_number|string|false|none|The acquirer reference number (ARN)|
|mcc|string|false|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> for the payment.|
|3ds|object|false|none|Specifies if the payment was authenticated with 3DS.|
|» version|string|false|none|The 3D Secure version used for authentication.|
|» enrolled|string|false|none|The issuer's 3D Secure (3DS) enrollment status:<br>  - `Y`: issuer enrolled<br>  - `N`: customer not enrolled<br>  - `U`: enrollment status unknown|
|eci|string|false|none|The final Electronic Commerce Indicator (ECI) security level used to authorize the payment.<br><br>The ECI indicator is applicable to 3D Secure (3DS) and network token payments.|
|has_refund|boolean|false|none|Specifies whether there is a refund against the payment.|
|processed_on|string(date-time)|false|none|The date and time at which the payment was requested|

<h2 id="tocS_ProvideEvidenceRequest">ProvideEvidenceRequest</h2>
<!-- backwards compatibility -->
<a id="schemaprovideevidencerequest"></a>
<a id="schema_ProvideEvidenceRequest"></a>
<a id="tocSprovideevidencerequest"></a>
<a id="tocsprovideevidencerequest"></a>

```json
{
  "proof_of_delivery_or_service_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_text": "Description of evidence available at: http://checkout.com/evidenceDocument.pdf",
  "proof_of_delivery_or_service_date_file": "file_jmbfgkjromvcrn9t4qu4",
  "proof_of_delivery_or_service_date_text": "Copy of the customer receipt showing the merchandise was delivered on 2018-12-20",
  "invoice_or_receipt_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_or_receipt_text": "Copy of the invoice",
  "invoice_showing_distinct_transactions_file": "file_jmbfgkjromvcrn9t4qu4",
  "invoice_showing_distinct_transactions_text": "Copy of invoice #1244 showing two transactions",
  "customer_communication_file": "file_jmbfgkjromvcrn9t4qu4",
  "customer_communication_text": "Copy of an email exchange with the cardholder",
  "refund_or_cancellation_policy_file": "file_jmbfgkjromvcrn9t4qu4",
  "refund_or_cancellation_policy_text": "Copy of the refund policy",
  "recurring_transaction_agreement_file": "file_jmbfgkjromvcrn9t4qu4",
  "recurring_transaction_agreement_text": "Copy of the recurring transaction agreement",
  "additional_evidence_file": "file_jmbfgkjromvcrn9t4qu4",
  "additional_evidence_text": "Scanned document",
  "arbitration_no_review_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_no_review_text": "Evidence for arbitration",
  "arbitration_review_required_files": [
    "file_jmbfgkjromvcrn9t4qu4",
    "file_kmbfgkjromvcrn9t4qu5"
  ],
  "arbitration_review_required_text": "Evidence for arbitration",
  "compelling_evidence": {
    "merchandise_or_service": "Merchandise",
    "merchandise_or_service_desc": "Subscription payment",
    "merchandise_or_service_provided_date": "2024-07-25T11:23:06Z",
    "shipping_delivery_status": "shipped",
    "tracking_information": "129481229312",
    "user_id": "user@cko.com",
    "ip_address": "192.168.1.150",
    "device_id": "device_123_x_1220",
    "shipping_address": {
      "address": "string",
      "address2": "string",
      "city": "string",
      "state_region": "st",
      "postal_code": "string",
      "country": "826"
    },
    "historical_transactions": [
      {
        "historical_arn": "stringstringstringstri",
        "merchandise_or_service_desc": "string"
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf12/evidence"
    },
    "parent": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf12"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|proof_of_delivery_or_service_file|string|false|none|A file containing proof of delivery of goods or services.|
|proof_of_delivery_or_service_text|string|false|none|A brief description of the file provided in `proof_of_delivery_or_service_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|proof_of_delivery_or_service_date_file|string|false|none|A file showing the delivery date of the provided service or merchandise.|
|proof_of_delivery_or_service_date_text|string|false|none|A brief description of the file provided in `proof_of_delivery_or_service_date_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|invoice_or_receipt_file|string|false|none|A file containing an invoice or receipt.|
|invoice_or_receipt_text|string|false|none|A brief description of the file provided in `invoice_or_receipt_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|invoice_showing_distinct_transactions_file|string|false|none|A file containing invoice showing two distinct transactions.|
|invoice_showing_distinct_transactions_text|string|false|none|A brief description of the file provided in `invoice_showing_distinct_transactions_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|customer_communication_file|string|false|none|A file containing customer communication.|
|customer_communication_text|string|false|none|A brief description of the file provided in `customer_communication_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|refund_or_cancellation_policy_file|string|false|none|A file containing refund/cancellation policy|
|refund_or_cancellation_policy_text|string|false|none|A brief description of the file provided in `refund_or_cancellation_policy_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|recurring_transaction_agreement_file|string|false|none|A file containing the recurring transaction agreement|
|recurring_transaction_agreement_text|string|false|none|A brief description of the file provided in `recurring_transaction_agreement_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|additional_evidence_file|string|false|none|A file containing additional supporting documents.|
|additional_evidence_text|string|false|none|A brief description of the file provided in `additional_evidence_file`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|arbitration_no_review_files|[string]|false|none|The evidence to submit directly to the scheme when you escalate the dispute to arbitration.<br><br>Evidence you provide with this field is submitted directly to the scheme.|
|arbitration_no_review_text|string|false|none|A brief description of the file provided in `arbitration_no_review_files`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|arbitration_review_required_files|[string]|false|none|The evidence to submit to the Checkout.com Dispute Resolution team for review. <br><br>You'll be advised on the likelihood of success if you choose to escalate the dispute to arbitration.|
|arbitration_review_required_text|string|false|none|A brief description of the file provided in `arbitration_review_required_files`. <br><br>Alternatively, you can provide a link to an externally-hosted file containing the description.|
|compelling_evidence|[CompellingEvidence](#schemacompellingevidence)|false|none|Used to resolve friendly fraud with merchant historical transactions.|
|_links|object|false|none|none|
|» self|object|false|none|The evidence retrieval endpoint.|
|»» href|any|false|none|none|
|» parent|object|false|none|The dispute retrieval endpoint.|
|»» href|any|false|none|none|

<h2 id="tocS_SchemeFileResponse">SchemeFileResponse</h2>
<!-- backwards compatibility -->
<a id="schemaschemefileresponse"></a>
<a id="schema_SchemeFileResponse"></a>
<a id="tocSschemefileresponse"></a>
<a id="tocsschemefileresponse"></a>

```json
{
  "id": "dsp_rbhwd2qrg13uhrp2newfab",
  "files": [
    {
      "dispute_status": "dispute_lost",
      "file": "file_6lbss42ezvoufcb2beo76rvwly"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf/schemefiles"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The dispute identifier|
|files|[object]|false|none|The scheme files of a dispute|
|» dispute_status|string|false|none|The dispute status of the scheme file|
|» file|string|false|none|The scheme file identifier|
|_links|object|false|none|none|
|» self|[Link](#schemalink)|false|none|The dispute scheme files retrieval endpoint|

<h2 id="tocS_SubmittedEvidenceResponse">SubmittedEvidenceResponse</h2>
<!-- backwards compatibility -->
<a id="schemasubmittedevidenceresponse"></a>
<a id="schema_SubmittedEvidenceResponse"></a>
<a id="tocSsubmittedevidenceresponse"></a>
<a id="tocssubmittedevidenceresponse"></a>

```json
{
  "file_id": "file_iweu3nxyt6zund3gwhg7wo4fhq",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_f28bcafe073z72ad4a18/evidence/submitted"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|file_id|string|false|none|The unique identifier for the PDF file containing all of the submitted evidence.|
|_links|object|false|none|none|
|» self|object|false|none|The endpoint you can use to retrieve the unique identifier of the PDF file containing all of the submitted dispute evidence.|
|»» href|string|false|none|none|

<h2 id="tocS_Error">Error</h2>
<!-- backwards compatibility -->
<a id="schemaerror"></a>
<a id="schema_Error"></a>
<a id="tocSerror"></a>
<a id="tocserror"></a>

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_malformed"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|

<h2 id="tocS_FavActiveLink">FavActiveLink</h2>
<!-- backwards compatibility -->
<a id="schemafavactivelink"></a>
<a id="schema_FavActiveLink"></a>
<a id="tocSfavactivelink"></a>
<a id="tocsfavactivelink"></a>

```json
{
  "verification_url": {
    "href": "http://example.com"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|verification_url|[IdvHalLink](#schemaidvhallink)|true|none|The attempt URL to redirect the applicant to.|

<h2 id="tocS_FavApplicantSessionInformation">FavApplicantSessionInformation</h2>
<!-- backwards compatibility -->
<a id="schemafavapplicantsessioninformation"></a>
<a id="schema_FavApplicantSessionInformation"></a>
<a id="tocSfavapplicantsessioninformation"></a>
<a id="tocsfavapplicantsessioninformation"></a>

```json
{
  "ip_address": "123.4.5.6",
  "number_of_sessions": 3,
  "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
  "initial_device": "desktop"
}

```

ApplicantSessionInformation

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ip_address|string|false|none|The applicant's IP address during the attempt.|
|number_of_sessions|integer|false|read-only|The number of sessions the applicant opened during the attempt.|
|user_agent|string|false|read-only|The user agent of the browser the applicant used during the attempt.|
|initial_device|[IdvInitialDevices](#schemaidvinitialdevices)|false|none|The type of device the applicant used to start the attempt.|

<h2 id="tocS_FavAttemptAsset">FavAttemptAsset</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptasset"></a>
<a id="schema_FavAttemptAsset"></a>
<a id="tocSfavattemptasset"></a>
<a id="tocsfavattemptasset"></a>

```json
{
  "type": "face_image",
  "_links": {
    "asset_url": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of asset.|
|_links|object|true|none|none|
|» asset_url|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|face_image|
|type|face_video|

<h2 id="tocS_FavAttemptAssets">FavAttemptAssets</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptassets"></a>
<a id="schema_FavAttemptAssets"></a>
<a id="tocSfavattemptassets"></a>
<a id="tocsfavattemptassets"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "type": "face_image",
      "_links": {
        "asset_url": {
          "href": "http://example.com"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of assets.|
|skip|integer|true|none|The number of assets you want to skip. <br/>Example – There are 10 assets. If you provide `6`, the first six assets are skipped.|
|limit|integer|true|none|The maximum number of assets you want returned. <br/>Example – There are 10 assets. If you set `limit` to `5`, but skip the first six, four assets are returned.|
|data|[[FavAttemptAsset](#schemafavattemptasset)]|true|none|The list of assets for the current page.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_FavAttemptId">FavAttemptId</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptid"></a>
<a id="schema_FavAttemptId"></a>
<a id="tocSfavattemptid"></a>
<a id="tocsfavattemptid"></a>

```json
"fatp_tkoi5db4hryu5cei5vwoabraio"

```

The unique identifier for the face authentication attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The unique identifier for the face authentication attempt.|

<h2 id="tocS_FavAttemptLinks">FavAttemptLinks</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptlinks"></a>
<a id="schema_FavAttemptLinks"></a>
<a id="tocSfavattemptlinks"></a>
<a id="tocsfavattemptlinks"></a>

```json
{
  "self": {
    "href": "http://example.com"
  },
  "verification_url": {
    "href": "http://example.com"
  }
}

```

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[FavActiveLink](#schemafavactivelink)|false|none|none|

<h2 id="tocS_FavAttemptRequest">FavAttemptRequest</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptrequest"></a>
<a id="schema_FavAttemptRequest"></a>
<a id="tocSfavattemptrequest"></a>
<a id="tocsfavattemptrequest"></a>

```json
{
  "redirect_url": "http://example.com",
  "phone_number": {
    "country_code": "+33",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_language": "en-US"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|redirect_url|string(uri)|true|none|The URL to redirect the applicant to after the attempt.|
|phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|client_information|[FavClientInformation](#schemafavclientinformation)|false|none|The applicant's details.|

<h2 id="tocS_FavAttemptResponse">FavAttemptResponse</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptresponse"></a>
<a id="schema_FavAttemptResponse"></a>
<a id="tocSfavattemptresponse"></a>
<a id="tocsfavattemptresponse"></a>

```json
{
  "id": "fatp_tkoi5db4hryu5cei5vwoabraio",
  "redirect_url": "string",
  "status": "capture_aborted",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "phone_number": {
    "country_code": "+33",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_language": "en-US"
  },
  "applicant_session_information": {
    "ip_address": "123.4.5.6",
    "number_of_sessions": 3,
    "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
    "initial_device": "desktop"
  },
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "verification_url": {
      "href": "http://example.com"
    }
  },
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[FavAttemptId](#schemafavattemptid)|true|none|The unique identifier for the face authentication attempt.|
|redirect_url|string|true|none|The URL to redirect the applicant to after the attempt.|
|status|[IdvAttemptStatuses](#schemaidvattemptstatuses)|true|none|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|
|response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|client_information|[FavClientInformation](#schemafavclientinformation)|false|none|The applicant's details.|
|applicant_session_information|[FavApplicantSessionInformation](#schemafavapplicantsessioninformation)|false|none|The details of the attempt.|
|_links|[FavAttemptLinks](#schemafavattemptlinks)|true|read-only|The details of links related to the resource.|

<h2 id="tocS_FavAttemptResponseList">FavAttemptResponseList</h2>
<!-- backwards compatibility -->
<a id="schemafavattemptresponselist"></a>
<a id="schema_FavAttemptResponseList"></a>
<a id="tocSfavattemptresponselist"></a>
<a id="tocsfavattemptresponselist"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 10,
  "data": [
    {
      "id": "fatp_tkoi5db4hryu5cei5vwoabraio",
      "redirect_url": "string",
      "status": "capture_aborted",
      "response_codes": [
        {
          "code": 10000,
          "summary": "document_front_not_captured"
        }
      ],
      "phone_number": {
        "country_code": "+33",
        "number": "5555550102"
      },
      "client_information": {
        "pre_selected_residence_country": "FR",
        "pre_selected_language": "en-US"
      },
      "applicant_session_information": {
        "ip_address": "123.4.5.6",
        "number_of_sessions": 3,
        "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
        "initial_device": "desktop"
      },
      "_links": {
        "self": {
          "href": "http://example.com"
        },
        "verification_url": {
          "href": "http://example.com"
        }
      },
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of attempts.|
|skip|integer|true|none|The number of attempts you want to skip, to help you view the relevant attempt. <br/>Example – There are 10 attempts. If you provide `6`, the first six attempts are skipped.|
|limit|integer|true|none|The maximum number of attempts you want returned. <br/>Example – There are 10 attempts. If you set `limit` to `5`, but skip the first six, four attempts are returned.|
|data|[[FavAttemptResponse](#schemafavattemptresponse)]|true|none|The details of the attempt.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_FavClientInformation">FavClientInformation</h2>
<!-- backwards compatibility -->
<a id="schemafavclientinformation"></a>
<a id="schema_FavClientInformation"></a>
<a id="tocSfavclientinformation"></a>
<a id="tocsfavclientinformation"></a>

```json
{
  "pre_selected_residence_country": "FR",
  "pre_selected_language": "en-US"
}

```

ClientInformation

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|pre_selected_residence_country|string|false|none|The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|pre_selected_language|string(IETF BCP 47 language tag)|false|none|The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag|

<h2 id="tocS_FavFaceAuthentication">FavFaceAuthentication</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthentication"></a>
<a id="schema_FavFaceAuthentication"></a>
<a id="tocSfavfaceauthentication"></a>
<a id="tocsfavfaceauthentication"></a>

```json
{
  "id": "fav_mtta050yudd54y5iqb5ijh8jtvz",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[FavFaceAuthenticationId](#schemafavfaceauthenticationid)|true|read-only|The face authentication's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[FavFaceAuthenticationBase](#schemafavfaceauthenticationbase)|false|none|none|

<h2 id="tocS_FavFaceAuthenticationBase">FavFaceAuthenticationBase</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthenticationbase"></a>
<a id="schema_FavFaceAuthenticationBase"></a>
<a id="tocSfavfaceauthenticationbase"></a>
<a id="tocsfavfaceauthenticationbase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|true|none|Your configuration ID.|
|status|[FavVerificationStatuses](#schemafavverificationstatuses)|true|read-only|The [face authentication status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|risk_labels|[IdvRiskLabels](#schemaidvrisklabels)|true|read-only|One or more codes that provide more information about risks associated with the verification.|
|face|[IdvFace](#schemaidvface)|false|read-only|The details of the image of the applicant's face extracted from the video.|
|_links|[FavFaceAuthenticationLinks](#schemafavfaceauthenticationlinks)|true|read-only|The details of links related to the resource.|

<h2 id="tocS_FavFaceAuthenticationCreateBase">FavFaceAuthenticationCreateBase</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthenticationcreatebase"></a>
<a id="schema_FavFaceAuthenticationCreateBase"></a>
<a id="tocSfavfaceauthenticationcreatebase"></a>
<a id="tocsfavfaceauthenticationcreatebase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|false|none|Your configuration ID.|
|status|[FavVerificationStatuses](#schemafavverificationstatuses)|true|none|The [face authentication status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|
|face|[IdvFace](#schemaidvface)|false|read-only|The details of the image of the applicant's face extracted from the video.|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|none|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|risk_labels|[IdvRiskLabels](#schemaidvrisklabels)|true|none|One or more codes that provide more information about risks associated with the verification.|
|_links|[FavFaceAuthenticationLinks](#schemafavfaceauthenticationlinks)|true|none|The details of links related to the resource.|

<h2 id="tocS_FavFaceAuthenticationError">FavFaceAuthenticationError</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthenticationerror"></a>
<a id="schema_FavFaceAuthenticationError"></a>
<a id="tocSfavfaceauthenticationerror"></a>
<a id="tocsfavfaceauthenticationerror"></a>

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error_type|string|true|none|The type of error.|
|error_codes|[string]|true|none|The error codes.|

#### Enumerated Values

|Property|Value|
|---|---|
|error_type|unprocessable_entity|
|error_type|request_invalid|

<h2 id="tocS_FavFaceAuthenticationId">FavFaceAuthenticationId</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthenticationid"></a>
<a id="schema_FavFaceAuthenticationId"></a>
<a id="tocSfavfaceauthenticationid"></a>
<a id="tocsfavfaceauthenticationid"></a>

```json
"fav_mtta050yudd54y5iqb5ijh8jtvz"

```

The face authentication's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The face authentication's unique identifier.|

<h2 id="tocS_FavFaceAuthenticationLinks">FavFaceAuthenticationLinks</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthenticationlinks"></a>
<a id="schema_FavFaceAuthenticationLinks"></a>
<a id="tocSfavfaceauthenticationlinks"></a>
<a id="tocsfavfaceauthenticationlinks"></a>

```json
{
  "self": {
    "href": "http://example.com"
  },
  "applicant": {
    "href": "http://example.com"
  }
}

```

The details of links related to the resource.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvApplicantLink](#schemaidvapplicantlink)|false|none|The URL to the applicant's profile.|

<h2 id="tocS_FavFaceAuthenticationOutput">FavFaceAuthenticationOutput</h2>
<!-- backwards compatibility -->
<a id="schemafavfaceauthenticationoutput"></a>
<a id="schema_FavFaceAuthenticationOutput"></a>
<a id="tocSfavfaceauthenticationoutput"></a>
<a id="tocsfavfaceauthenticationoutput"></a>

```json
{
  "id": "fav_mtta050yudd54y5iqb5ijh8jtvz",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[FavFaceAuthenticationId](#schemafavfaceauthenticationid)|true|none|The face authentication's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[FavFaceAuthenticationCreateBase](#schemafavfaceauthenticationcreatebase)|false|none|none|

<h2 id="tocS_FavVerificationStatuses">FavVerificationStatuses</h2>
<!-- backwards compatibility -->
<a id="schemafavverificationstatuses"></a>
<a id="schema_FavVerificationStatuses"></a>
<a id="tocSfavverificationstatuses"></a>
<a id="tocsfavverificationstatuses"></a>

```json
"approved"

```

The [face authentication status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The [face authentication status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|approved|
|*anonymous*|capture_in_progress|
|*anonymous*|checks_in_progress|
|*anonymous*|created|
|*anonymous*|declined|
|*anonymous*|inconclusive|
|*anonymous*|pending|
|*anonymous*|refused|
|*anonymous*|retry_required|

<h2 id="tocS_FinancialAction">FinancialAction</h2>
<!-- backwards compatibility -->
<a id="schemafinancialaction"></a>
<a id="schema_FinancialAction"></a>
<a id="tocSfinancialaction"></a>
<a id="tocsfinancialaction"></a>

```json
{
  "payment_id": "pay_qqufsd3rfnqufngwklghlxrzpm",
  "action_id": "act_wsnyzbzmr2huxcekoj7qqhxwuy",
  "action_type": "Capture",
  "entity_id": "ent_xozz5q2yvxsetbslrvjxugbsyy",
  "sub_entity_id": "ent_6akzb5simnkejihbnw6udjpecq",
  "currency_account_id": "ca_oo5z564in66ujcsxlbhjsar3p4",
  "payment_method": "MASTERCARD",
  "processing_channel_id": "pc_y7hikmc5flhuvav47blunjsdui",
  "mid": "mid-12345",
  "response_code": "10000",
  "response_description": "Approved",
  "region": "International",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer_country": "US",
  "merchant_category_code": "5311",
  "fx_trade_id": "trd_intsaxljgi6uzkxnv6lex3xayu",
  "acquirer_reference_number": "01234567890123456789012",
  "account_funding_transaction": true,
  "scheme_fx_adjustment_eligible": true,
  "processed_on": "2022-02-18T13:00:12.357Z",
  "requested_on": "2022-02-18T13:00:11.724Z",
  "breakdown": [
    {
      "breakdown_type": "Scheme Fixed Fee",
      "fx_rate_applied": 1.24,
      "holding_currency": "USD",
      "holding_currency_amount": 0.19526938,
      "processing_currency": "GBP",
      "processing_currency_amount": 0.1581682,
      "transaction_currency": "EUR",
      "transaction_currency_amount": 0.18031175,
      "processing_to_transaction_currency_fx_rate": 1.14,
      "transaction_to_holding_currency_fx_rate": 1.08,
      "fee_detail": "Visa Fixed Acquirer Network Fee",
      "reserve_rate": "5%",
      "reserve_release_date": "2023-06-21T09:15:34.782Z",
      "reserve_deducted_date": "2022-02-18T13:00:12.357Z",
      "tax_fx_rate": 1.45,
      "scheme_fx_adjustment_processing_currency": "GBP",
      "scheme_fx_adjustment_rate_applied": 1.45,
      "entity_country_tax_currency": "AUD",
      "tax_currency_amount": 1.1
    }
  ],
  "bin": "444444",
  "issuing_bank": "Bank Name",
  "payment_type": "Regular"
}

```

Financial actions response details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_id|string|true|none|The unique ID of the payment to which a financial action is associated.|
|action_id|string|true|none|The unique ID of a given financial action impacting your balances.|
|action_type|string|true|none|The type of action processed. For example, authorization, capture, refund, chargeback, pay to card.|
|entity_id|string|true|none|The unique ID of the entity for which the payment was processed.|
|sub_entity_id|string|false|none|The unique ID of the sub-entity for which the payment was processed.|
|currency_account_id|string|true|none|The unique ID of the currency account to which the financial action amount was charged.|
|payment_method|string|false|none|The payment method associated with the financial action.|
|processing_channel_id|string|false|none|The unique ID for processing channel configurations.|
|mid|string|false|none|An optional merchant ID used to segment your payments traffic with card schemes.|
|response_code|string|false|none|The payment request response code.|
|response_description|string|false|none|A description of the payment request response code.|
|region|string|false|none|The region where this payment occurred.|
|card_type|string|false|none|The card type used to make the payment|
|card_category|string|false|none|The card category used to make the payment. For example, consumer or commercial.|
|issuer_country|string|false|none|Two-digit ISO country code of the country where the payment is processed.|
|merchant_category_code|string|false|none|Four-digit code for retail financial services expressed in ISO 18245 format, classifying the types of goods or services you provide.|
|fx_trade_id|string|false|none|The unique ID of the foreign exchange trade executed in fulfillment of a financial action.|
|acquirer_reference_number|string|false|none|The unique number assigned to a transaction when it moves through the payment flow between the merchant bank and the cardholder's bank.|
|account_funding_transaction|boolean|false|none|A flag to mark if a transaction debited funds from an account to fund a non-merchant account. For example, to load a prepaid card or top up a wallet.|
|scheme_fx_adjustment_eligible|boolean|false|none|A flag to mark if the transaction honors the scheme exchange rate applicable at the time of authorization for both authorization and settlement movements.|
|processed_on|string(date-time)|true|none|An ISO 8601 timestamp of when the action was processed and impacted your balances, in UTC.|
|requested_on|string(date-time)|true|none|An ISO 8601 timestamp of when a gateway request was made for an action, in UTC.|
|breakdown|[[FinancialActionBreakdown](#schemafinancialactionbreakdown)]|false|none|The breakdown of amounts within this financial action.|
|bin|string|false|none|Identifier for the financial institution that issued the card.|
|issuing_bank|string|false|none|The bank that issued the card used to make the payment.|
|payment_type|string|false|none|Specifies the type of card payment where the cardholder is not present e.g. recurring or mail order. This could be Regular, Recurring, MOTO, Installment, or Unscheduled.|

#### Enumerated Values

|Property|Value|
|---|---|
|region|Domestic|
|region|International|
|region|Intra|
|region|IntraEEA|
|region|IntraEuropean_SEPA|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_category|CONSUMER|
|card_category|COMMERCIAL|

<h2 id="tocS_FinancialActionBreakdown">FinancialActionBreakdown</h2>
<!-- backwards compatibility -->
<a id="schemafinancialactionbreakdown"></a>
<a id="schema_FinancialActionBreakdown"></a>
<a id="tocSfinancialactionbreakdown"></a>
<a id="tocsfinancialactionbreakdown"></a>

```json
{
  "breakdown_type": "Scheme Fixed Fee",
  "fx_rate_applied": 1.24,
  "holding_currency": "USD",
  "holding_currency_amount": 0.19526938,
  "processing_currency": "GBP",
  "processing_currency_amount": 0.1581682,
  "transaction_currency": "EUR",
  "transaction_currency_amount": 0.18031175,
  "processing_to_transaction_currency_fx_rate": 1.14,
  "transaction_to_holding_currency_fx_rate": 1.08,
  "fee_detail": "Visa Fixed Acquirer Network Fee",
  "reserve_rate": "5%",
  "reserve_release_date": "2023-06-21T09:15:34.782Z",
  "reserve_deducted_date": "2022-02-18T13:00:12.357Z",
  "tax_fx_rate": 1.45,
  "scheme_fx_adjustment_processing_currency": "GBP",
  "scheme_fx_adjustment_rate_applied": 1.45,
  "entity_country_tax_currency": "AUD",
  "tax_currency_amount": 1.1
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|breakdown_type|string|true|none|A description of the type of fee or amount. For example, authorization fee.|
|fx_rate_applied|number|true|none|The foreign exchange rate applied to a processed financial action.|
|holding_currency|string|true|none|Three-digit ISO currency code of the currency a financial action is held and paid out in.|
|holding_currency_amount|number|true|none|The associated amount of the financial action in the holding currency.|
|processing_currency|string|true|none|Three-digit ISO currency code of a financial action when processed.|
|processing_currency_amount|number|true|none|The associated amount of the financial action in the processing currency.|
|transaction_currency|string|false|none|The currency of the transaction.|
|transaction_currency_amount|number|false|none|The transaction amount, expressed in the transaction currency.|
|processing_to_transaction_currency_fx_rate|number|false|none|The foreign exchange rate between the processing currency and the transaction currency.|
|transaction_to_holding_currency_fx_rate|number|false|none|The foreign exchange rate between the transaction currency and the holding currency. This rate is inferred from both the FX Rate and Processing to Transaction Currency FX Rate columns to account for foreign exchange rates from multiple rate ticks.|
|fee_detail|string|false|none|The additional level of granularity for predicted scheme fees applied.|
|reserve_rate|string|false|none|The percentage amount reserved from the payment.|
|reserve_release_date|string(date-time)|false|none|The date that the reserve is scheduled to be released for a Rolling Reserve Deducted, or the date that the reserve is released for a Rolling Reserve Released financial action.|
|reserve_deducted_date|string(date-time)|false|none|The date the reserve was deducted from the payment.|
|tax_fx_rate|number|false|none|The foreign exchange rate between the holding currency and the tax currency at the point the financial action was processed.|
|scheme_fx_adjustment_processing_currency|string|false|none|The processing currency of the transactions covered by the scheme FX adjustment.|
|scheme_fx_adjustment_rate_applied|number|false|none|The rate applied to calculate the scheme FX adjustment over eligible transactions.|
|entity_country_tax_currency|string|false|none|The currency of the country your entity resides in for tax purposes, if applicable.|
|tax_currency_amount|number|false|none|The amount of tax applied, expressed in the tax currency.|

<h2 id="tocS_FinancialActionErrorResponse">FinancialActionErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemafinancialactionerrorresponse"></a>
<a id="schema_FinancialActionErrorResponse"></a>
<a id="tocSfinancialactionerrorresponse"></a>
<a id="tocsfinancialactionerrorresponse"></a>

```json
{
  "request_id": "0HMJGFVAQ35TL:00000117",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}

```

Error Response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|Request ID|
|error_type|string|false|none|The type of error. <br/> • `invalid_request`: Usually occurs with an HTTP status code `422`. The request payload failed validation. <br/> • `not_found`: Usually occurs with an HTTP status code `404`. The requested resource was not found. <br/>|
|error_codes|[string]|false|none|Error response code. Full list of error codes below: <br/> • `invalid_some_field`: Usually occurs with an error type `invalid_request` and HTTP status code `422 Unprocessable entity`. The field `some_field` failed validation. Please consult the API spec. <br/> • `some_resource_not_found`: Usually occurs with an error type `not_found`. The resource you are trying to retrieve does not exist. <br/>|

<h2 id="tocS_FinancialActionListResponse">FinancialActionListResponse</h2>
<!-- backwards compatibility -->
<a id="schemafinancialactionlistresponse"></a>
<a id="schema_FinancialActionListResponse"></a>
<a id="tocSfinancialactionlistresponse"></a>
<a id="tocsfinancialactionlistresponse"></a>

```json
{
  "count": 1,
  "limit": 5,
  "data": [
    {
      "payment_id": "pay_qqufsd3rfnqufngwklghlxrzpm",
      "action_id": "act_wsnyzbzmr2huxcekoj7qqhxwuy",
      "action_type": "Capture",
      "entity_id": "ent_xozz5q2yvxsetbslrvjxugbsyy",
      "sub_entity_id": "ent_6akzb5simnkejihbnw6udjpecq",
      "currency_account_id": "ca_oo5z564in66ujcsxlbhjsar3p4",
      "payment_method": "MASTERCARD",
      "processing_channel_id": "pc_y7hikmc5flhuvav47blunjsdui",
      "mid": "mid-12345",
      "response_code": "10000",
      "response_description": "Approved",
      "region": "International",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_country": "US",
      "merchant_category_code": "5311",
      "fx_trade_id": "trd_intsaxljgi6uzkxnv6lex3xayu",
      "acquirer_reference_number": "01234567890123456789012",
      "account_funding_transaction": true,
      "scheme_fx_adjustment_eligible": true,
      "processed_on": "2022-02-18T13:00:12.357Z",
      "requested_on": "2022-02-18T13:00:11.724Z",
      "breakdown": [
        {
          "breakdown_type": "Scheme Fixed Fee",
          "fx_rate_applied": 1.24,
          "holding_currency": "USD",
          "holding_currency_amount": 0.19526938,
          "processing_currency": "GBP",
          "processing_currency_amount": 0.1581682,
          "transaction_currency": "EUR",
          "transaction_currency_amount": 0.18031175,
          "processing_to_transaction_currency_fx_rate": 1.14,
          "transaction_to_holding_currency_fx_rate": 1.08,
          "fee_detail": "Visa Fixed Acquirer Network Fee",
          "reserve_rate": "5%",
          "reserve_release_date": "2023-06-21T09:15:34.782Z",
          "reserve_deducted_date": "2022-02-18T13:00:12.357Z",
          "tax_fx_rate": 1.45,
          "scheme_fx_adjustment_processing_currency": "GBP",
          "scheme_fx_adjustment_rate_applied": 1.45,
          "entity_country_tax_currency": "AUD",
          "tax_currency_amount": 1.1
        }
      ],
      "bin": "444444",
      "issuing_bank": "Bank Name",
      "payment_type": "Regular"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5"
    },
    "next": {
      "href": "https://{prefix}.api.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5&pagination_token=string"
    }
  }
}

```

The list of financial actions in the response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|count|integer(int32)|false|none|The total number of financial actions on the current page.|
|limit|integer(int32)|false|none|The maximum number of results included per page.|
|data|[allOf]|false|none|none|
|_links|object|false|none|The `links` object.|
|» self|[FinancialActionsSelfLink](#schemafinancialactionsselflink)|false|none|The `self` object.|
|» next|[FinancialActionsNextLink](#schemafinancialactionsnextlink)|false|none|The `next` object.|

<h2 id="tocS_FinancialActionsLink">FinancialActionsLink</h2>
<!-- backwards compatibility -->
<a id="schemafinancialactionslink"></a>
<a id="schema_FinancialActionsLink"></a>
<a id="tocSfinancialactionslink"></a>
<a id="tocsfinancialactionslink"></a>

```json
{
  "href": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string|false|none|none|

<h2 id="tocS_FinancialActionsNextLink">FinancialActionsNextLink</h2>
<!-- backwards compatibility -->
<a id="schemafinancialactionsnextlink"></a>
<a id="schema_FinancialActionsNextLink"></a>
<a id="tocSfinancialactionsnextlink"></a>
<a id="tocsfinancialactionsnextlink"></a>

```json
{
  "href": "string"
}

```

### Properties

*None*

<h2 id="tocS_FinancialActionsSelfLink">FinancialActionsSelfLink</h2>
<!-- backwards compatibility -->
<a id="schemafinancialactionsselflink"></a>
<a id="schema_FinancialActionsSelfLink"></a>
<a id="tocSfinancialactionsselflink"></a>
<a id="tocsfinancialactionsselflink"></a>

```json
{
  "href": "string"
}

```

### Properties

*None*

<h2 id="tocS_get-event-response">get-event-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-event-response"></a>
<a id="schema_get-event-response"></a>
<a id="tocSget-event-response"></a>
<a id="tocsget-event-response"></a>

```json
{
  "id": "evt_az5sblvku4ge3dwpztvyizgcau",
  "source": "gateway",
  "type": "payment_approved",
  "timestamp": "2019-08-24T14:15:22Z",
  "version": "1.0.0",
  "data": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
    "amount": 6540,
    "currency": "USD",
    "approved": true,
    "status": "Authorized",
    "auth_code": "643381",
    "payment_type": "Regular",
    "response_code": "10000",
    "response_summary": "Approved",
    "scheme_id": "745664329470123",
    "3ds": {
      "downgraded": true,
      "enrolled": "N"
    },
    "flagged": true,
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "line1": "123 High St",
        "line2": "Flat 456",
        "town_city": "London",
        "state": "GB",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 12,
      "expiry_year": 2025,
      "scheme": "VISA'",
      "last_4": "4242",
      "fingerprint": "54710B428R6H190D29087FF265D8F48DF1AD34EDE41C27CBFF9D23C1A14D9876",
      "bin": "424242",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer": "MERCHANT UK",
      "issuer_country": "GB",
      "product_id": "F",
      "product_type": "Visa Classic",
      "avs_check": "G",
      "cvv_check": "Y"
    },
    "processing": {
      "acquirer_transaction_id": "501979547418712947435",
      "retrieval_reference_number": "682643929865"
    },
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "event_links": {
      "payment": "https://{prefix}.api.checkout.com/payments/pay_wlu3wxc26jounofs5iez75qaqa",
      "dispute": "https://{prefix}.api.checkout.com/disputes/dsp_jfh5iqceqau0qw3ccf3p"
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne"
    },
    "processed_on": "2020-02-27T11:26:59Z",
    "reference": "ORD-5023-4E89",
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    }
  },
  "action_invocations": [
    {
      "workflow_id": "wf_c7svxlvo2bbuva4f6s3xu4f7wm",
      "workflow_action_id": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa",
      "status": "pending",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/events/evt_az5sblvku4ge3dwpztvyizgcau/actions/wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/events/evt_az5sblvku4ge3dwpztvyizgcau"
    },
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_wlu3wxc26jounofs5iez75qaqa"
    },
    "dispute": {
      "href": "https://{prefix}.api.checkout.com/disputes/dsp_jfh5iqceqau0qw3ccf3p"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique event identifier|
|source|string|false|none|The source of the event|
|type|string|false|none|The event type|
|timestamp|string(date-time)|false|none|The date/time the event occurred|
|version|string|false|none|The version of the event|
|data|[event-data](#schemaevent-data)|false|none|The event data|
|action_invocations|[object]|false|none|The list of the actions that trigger this event.|
|» workflow_id|string|false|none|The workflow identifier|
|» workflow_action_id|string|false|none|The workflow action identifier|
|» status|string|false|none|The status of the workflow action.|
|» _links|object|false|none|Links related to the workflow action|
|»» self|[Link](#schemalink)|true|none|Workflow action results for this event|
|_links|[event-links](#schemaevent-links)|false|none|Links related to the event|

#### Enumerated Values

|Property|Value|
|---|---|
|status|pending|
|status|successful|
|status|failed|

<h2 id="tocS_get-event-types-response">get-event-types-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-event-types-response"></a>
<a id="schema_get-event-types-response"></a>
<a id="tocSget-event-types-response"></a>
<a id="tocsget-event-types-response"></a>

```json
[
  {
    "id": "gateway",
    "display_name": "Gateway",
    "description": "Events from the Checkout.com payment gateway",
    "events": [
      {
        "id": "payment_approved",
        "display_name": "Payment Authorized",
        "description": "Occurs when a payment is successfully authorized by the Checkout.com payment gateway"
      }
    ]
  }
]

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the event source|
|display_name|string|false|none|The display name of the event source|
|description|string|false|none|A description of the event source|
|events|[object]|false|none|The events raised by the source|
|» id|string|false|none|The event type identifier|
|» display_name|string|false|none|The display name of the event|
|» description|string|false|none|A description of the event|

<h2 id="tocS_event-data">event-data</h2>
<!-- backwards compatibility -->
<a id="schemaevent-data"></a>
<a id="schema_event-data"></a>
<a id="tocSevent-data"></a>
<a id="tocsevent-data"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 6540,
  "currency": "USD",
  "approved": true,
  "status": "Authorized",
  "auth_code": "643381",
  "payment_type": "Regular",
  "response_code": "10000",
  "response_summary": "Approved",
  "scheme_id": "745664329470123",
  "3ds": {
    "downgraded": true,
    "enrolled": "N"
  },
  "flagged": true,
  "source": {
    "type": "card",
    "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
    "billing_address": {
      "line1": "123 High St",
      "line2": "Flat 456",
      "town_city": "London",
      "state": "GB",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "expiry_month": 12,
    "expiry_year": 2025,
    "scheme": "VISA'",
    "last_4": "4242",
    "fingerprint": "54710B428R6H190D29087FF265D8F48DF1AD34EDE41C27CBFF9D23C1A14D9876",
    "bin": "424242",
    "card_type": "CREDIT",
    "card_category": "CONSUMER",
    "issuer": "MERCHANT UK",
    "issuer_country": "GB",
    "product_id": "F",
    "product_type": "Visa Classic",
    "avs_check": "G",
    "cvv_check": "Y"
  },
  "processing": {
    "acquirer_transaction_id": "501979547418712947435",
    "retrieval_reference_number": "682643929865"
  },
  "balances": {
    "total_authorized": 6540,
    "total_voided": 0,
    "available_to_void": 6540,
    "total_captured": 0,
    "available_to_capture": 6540,
    "total_refunded": 0,
    "available_to_refund": 0
  },
  "event_links": {
    "payment": "https://{prefix}.api.checkout.com/payments/pay_wlu3wxc26jounofs5iez75qaqa",
    "dispute": "https://{prefix}.api.checkout.com/disputes/dsp_jfh5iqceqau0qw3ccf3p"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne"
  },
  "processed_on": "2020-02-27T11:26:59Z",
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}

```

The event data

### Properties

*None*

<h2 id="tocS_event-links">event-links</h2>
<!-- backwards compatibility -->
<a id="schemaevent-links"></a>
<a id="schema_event-links"></a>
<a id="tocSevent-links"></a>
<a id="tocsevent-links"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/workflows/events/evt_az5sblvku4ge3dwpztvyizgcau"
  },
  "payment": {
    "href": "https://{prefix}.api.checkout.com/payments/pay_wlu3wxc26jounofs5iez75qaqa"
  },
  "dispute": {
    "href": "https://{prefix}.api.checkout.com/disputes/dsp_jfh5iqceqau0qw3ccf3p"
  }
}

```

Links related to the event

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|true|none|The URI of the event|

<h2 id="tocS_source-events-hashmap">source-events-hashmap</h2>
<!-- backwards compatibility -->
<a id="schemasource-events-hashmap"></a>
<a id="schema_source-events-hashmap"></a>
<a id="tocSsource-events-hashmap"></a>
<a id="tocssource-events-hashmap"></a>

```json
{
  "gateway": [
    "card_verified",
    "card_verification_declined",
    "payment_approved",
    "payment_pending",
    "payment_declined",
    "payment_voided",
    "payment_captured",
    "payment_refunded"
  ],
  "disputes": [
    "dispute_canceled",
    "dispute_evidence_required",
    "dispute_expired",
    "dispute_lost",
    "dispute_resolved",
    "dispute_won"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|**additionalProperties**|[string]|false|none|The event source|

<h2 id="tocS_subject-events-response">subject-events-response</h2>
<!-- backwards compatibility -->
<a id="schemasubject-events-response"></a>
<a id="schema_subject-events-response"></a>
<a id="tocSsubject-events-response"></a>
<a id="tocssubject-events-response"></a>

```json
{
  "data": [
    {
      "id": "evt_zrrgsvsr47ou7fng4shy4mtf64",
      "type": "payment_approved",
      "timestamp": "2019-05-23T08:25:53Z",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/events/evt_zrrgsvsr47ou7fng4shy4mtf64"
        }
      }
    },
    {
      "id": "evt_wgwdfyem4ode5furs5swyy6b2u",
      "type": "payment_captured",
      "timestamp": "2019-05-24T07:00:53Z",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/events/evt_zrrgsvsr47ou7fng4shy4mtf64"
        }
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[object]|false|none|none|
|» id|string|false|none|The unique event identifier|
|» type|string|false|none|The event type|
|» timestamp|string(date-time)|false|none|The date/time the event occurred|
|» _links|[event-links](#schemaevent-links)|false|none|Links related to the event|

<h2 id="tocS_ids-validation-error">ids-validation-error</h2>
<!-- backwards compatibility -->
<a id="schemaids-validation-error"></a>
<a id="schema_ids-validation-error"></a>
<a id="tocSids-validation-error"></a>
<a id="tocsids-validation-error"></a>

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "event_ids_invalid",
    "workflow_ids_invalid"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|
|error_codes|[string]|false|none|none|

<h2 id="tocS_reflow-events-by-event-and-workflow-ids">reflow-events-by-event-and-workflow-ids</h2>
<!-- backwards compatibility -->
<a id="schemareflow-events-by-event-and-workflow-ids"></a>
<a id="schema_reflow-events-by-event-and-workflow-ids"></a>
<a id="tocSreflow-events-by-event-and-workflow-ids"></a>
<a id="tocsreflow-events-by-event-and-workflow-ids"></a>

```json
{
  "events": [
    "evt_lzmo6p0i3612judj754w1ngtil",
    "evt_05z6xuagtti48ajyfbuekg6a0a"
  ],
  "workflows": [
    "wf_sq8jnqi9i749hhb470bu308uk2",
    "wf_bz91q7i4ks4sr0kasmas2xhp56"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|events|[string]|true|none|A list of IDs for the events you want reflowed.|
|workflows|[string]|false|none|A list of IDs for the workflows whose actions you want to retrigger.|

<h2 id="tocS_reflow-events-by-subject-and-workflow-ids">reflow-events-by-subject-and-workflow-ids</h2>
<!-- backwards compatibility -->
<a id="schemareflow-events-by-subject-and-workflow-ids"></a>
<a id="schema_reflow-events-by-subject-and-workflow-ids"></a>
<a id="tocSreflow-events-by-subject-and-workflow-ids"></a>
<a id="tocsreflow-events-by-subject-and-workflow-ids"></a>

```json
{
  "subjects": [
    "pay_lzmo6p0i3612judj754w1ngtil",
    "pay_ol8zt9jviq4mkark1bo5b4i9sk"
  ],
  "workflows": [
    "wf_sq8jnqi9i749hhb470bu308uk2",
    "wf_bz91q7i4ks4sr0kasmas2xhp56"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|subjects|[string]|true|none|A list of subject IDs (for example, payment IDs and disputes IDs). The events associated with these subjects will be reflowed.|
|workflows|[string]|false|none|A list of IDs for the workflows whose actions you want to retrigger.|

<h2 id="tocS_get-invocations-response">get-invocations-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-invocations-response"></a>
<a id="schema_get-invocations-response"></a>
<a id="tocSget-invocations-response"></a>
<a id="tocsget-invocations-response"></a>

```json
{
  "workflow_id": "wf_c7svxlvo2bbuva4f6s3xu4f7wm",
  "event_id": "evt_az5sblvku4ge3dwpztvyizgcau",
  "workflow_action_id": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa",
  "action_type": "webhook",
  "status": "successful",
  "action_invocations": [
    {
      "invocation_id": "ivc_az5sblvku4ge3dwpztvyizgcau",
      "timestamp": "2019-05-23T08:26:59Z",
      "retry": false,
      "succeeded": true,
      "final": true,
      "result_details": {
        "status_code": 200,
        "url": "https://example.com/webhooks",
        "headers": {
          "Authorization": "<AUTHORIZATION_UUID>"
        },
        "response_received_timestamp": "2019-05-23T08:27:01Z"
      }
    },
    {
      "invocation_id": "ivc_az5sblvku4ge3dwpztvyizgcau",
      "timestamp": "2019-05-23T08:27:01Z",
      "retry": true,
      "succeeded": false,
      "final": false,
      "result_details": {
        "status_code": 500,
        "url": "https://example.com/webhooks",
        "headers": {
          "Authorization": "<AUTHORIZATION_UUID>"
        },
        "response_received_timestamp": "2019-05-23T08:27:01Z"
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/events/evt_az5sblvku4ge3dwpztvyizgcau/actions/wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|workflow_id|string|false|none|The workflow identifier|
|event_id|string|false|none|The unique event identifier.|
|workflow_action_id|string|false|none|The worklow action identifier.|
|action_type|string|false|none|The workflow action type.|
|status|string|false|none|The status of the workflow action. It aggregates the past invocations outcome.|
|action_invocations|[object]|false|none|The list of the actions that trigger this event.|
|» invocation_id|string|false|none|The invocation identifier.|
|» timestamp|string(date-time)|false|none|The date/time the action was invoked for the event.|
|» retry|boolean|false|none|Whether the invocation has been retried.|
|» succeeded|boolean|false|none|Whether the invocation completed successfully.|
|» final|boolean|false|none|Indicates whether this is the final attempt.|
|» result_details|object|false|none|The result details returned from the action.|
|_links|object|false|none|Links related to the workflow action|
|» self|[Link](#schemalink)|true|none|Workflow action results for this event|

#### Enumerated Values

|Property|Value|
|---|---|
|status|pending|
|status|successful|
|status|failed|

<h2 id="tocS_get-webhook-action">get-webhook-action</h2>
<!-- backwards compatibility -->
<a id="schemaget-webhook-action"></a>
<a id="schema_get-webhook-action"></a>
<a id="tocSget-webhook-action"></a>
<a id="tocsget-webhook-action"></a>

```json
{
  "id": "wfa_tisekcawefze3l27uaai6hz74y",
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/actions/wfa_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

webhook

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow action identifier|
|type|string|true|none|The type of workflow action|
|url|string(uri)|true|none|Your webhook endpoint URL|
|headers|object|false|none|Optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request|
|» **additionalProperties**|string|false|none|The HTTP header value|
|signature|object|false|none|Used to produce a signature of the webhook contents that will be included in the `Cko-Signature` header. This value can be computed by you on receipt of a webhook to validate its authenticity.|
|» method|string|false|none|The signing method, defaults to HMAC SHA256|
|» key|string|true|none|The key used the sign the webhook|
|_links|[workflow-action-links](#schemaworkflow-action-links)|false|none|Links related to the workflow action|

<h2 id="tocS_get-workflow-action">get-workflow-action</h2>
<!-- backwards compatibility -->
<a id="schemaget-workflow-action"></a>
<a id="schema_get-workflow-action"></a>
<a id="tocSget-workflow-action"></a>
<a id="tocsget-workflow-action"></a>

```json
{
  "id": "wfa_tisekcawefze3l27uaai6hz74y",
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/actions/wfa_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

The workflow action

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow action identifier|
|type|string|true|none|The type of workflow action|

<h2 id="tocS_patch-response-webhook-action">patch-response-webhook-action</h2>
<!-- backwards compatibility -->
<a id="schemapatch-response-webhook-action"></a>
<a id="schema_patch-response-webhook-action"></a>
<a id="tocSpatch-response-webhook-action"></a>
<a id="tocspatch-response-webhook-action"></a>

```json
{
  "id": "wfa_itja4x7zgzye3andzqq62u4hvq",
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  }
}

```

webhook

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow action identifier|
|type|string|true|none|The type of workflow action|
|url|string(uri)|true|none|Your webhook endpoint URL|
|headers|object|false|none|The optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request|
|» **additionalProperties**|string|false|none|The HTTP header value|
|signature|object|false|none|Used to produce a signature of the webhook contents that will be included in the `Cko-Signature` header. On receipt of a webhook, you can compute this value to validate its authenticity.|
|» method|string|false|none|The signing method, defaults to `HMACSHA256`|
|» key|string|true|none|The key used the sign the webhook|

<h2 id="tocS_patch-response-workflow-action">patch-response-workflow-action</h2>
<!-- backwards compatibility -->
<a id="schemapatch-response-workflow-action"></a>
<a id="schema_patch-response-workflow-action"></a>
<a id="tocSpatch-response-workflow-action"></a>
<a id="tocspatch-response-workflow-action"></a>

```json
{
  "id": "wfa_itja4x7zgzye3andzqq62u4hvq",
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  }
}

```

The workflow patch action

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow action identifier|
|type|string|true|none|The type of workflow action|

<h2 id="tocS_patch-webhook-action">patch-webhook-action</h2>
<!-- backwards compatibility -->
<a id="schemapatch-webhook-action"></a>
<a id="schema_patch-webhook-action"></a>
<a id="tocSpatch-webhook-action"></a>
<a id="tocspatch-webhook-action"></a>

```json
{
  "workflow_action_id": "wfa_itja4x7zgzye3andzqq62u4hvq",
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  }
}

```

webhook

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|workflow_action_id|string|false|none|The workflow action identifier needed to update an existing action ID. Do not include this property if you want to add a new action.|
|type|string|true|none|The type of workflow action|
|url|string(uri)|true|none|Your webhook endpoint URL|
|headers|object|false|none|The optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request|
|» **additionalProperties**|string|false|none|The HTTP header value|
|signature|object|false|none|Used to produce a signature of the webhook contents that will be included in the `Cko-Signature` header. On receipt of a webhook, you can compute this value to validate its authenticity.|
|» method|string|false|none|The signing method, defaults to `HMACSHA256`|
|» key|string|true|none|The key used the sign the webhook|

<h2 id="tocS_patch-workflow-action">patch-workflow-action</h2>
<!-- backwards compatibility -->
<a id="schemapatch-workflow-action"></a>
<a id="schema_patch-workflow-action"></a>
<a id="tocSpatch-workflow-action"></a>
<a id="tocspatch-workflow-action"></a>

```json
{
  "workflow_action_id": "wfa_itja4x7zgzye3andzqq62u4hvq",
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  }
}

```

The workflow action

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|workflow_action_id|string|false|none|The workflow action identifier needed to update an existing action ID. Do not include this property if you want to add a new action.|
|type|string|true|none|The type of workflow action|

<h2 id="tocS_webhook-action">webhook-action</h2>
<!-- backwards compatibility -->
<a id="schemawebhook-action"></a>
<a id="schema_webhook-action"></a>
<a id="tocSwebhook-action"></a>
<a id="tocswebhook-action"></a>

```json
{
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  }
}

```

webhook

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of workflow action|
|url|string(uri)|true|none|Your webhook endpoint URL|
|headers|object|false|none|Optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request|
|» **additionalProperties**|string|false|none|The HTTP header value|
|signature|object|false|none|Used to produce a signature of the webhook contents that will be included in the `Cko-Signature` header. This value can be computed by you on receipt of a webhook to validate its authenticity.|
|» method|string|false|none|The signing method used to sign the webhook. If no value is specified, the value defaults to `HMAC SHA256`.|
|» key|string|true|none|The key used to sign the webhook|

<h2 id="tocS_workflow-action">workflow-action</h2>
<!-- backwards compatibility -->
<a id="schemaworkflow-action"></a>
<a id="schema_workflow-action"></a>
<a id="tocSworkflow-action"></a>
<a id="tocsworkflow-action"></a>

```json
{
  "type": "webhook",
  "url": "https://example.com/webhooks/checkout",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  },
  "signature": {
    "method": "HMACSHA256",
    "key": "public-signing-key"
  }
}

```

The workflow action

### Properties

*None*

<h2 id="tocS_add-update-workflow-action-request">add-update-workflow-action-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-update-workflow-action-request"></a>
<a id="schema_add-update-workflow-action-request"></a>
<a id="tocSadd-update-workflow-action-request"></a>
<a id="tocsadd-update-workflow-action-request"></a>

```json
{
  "type": "webhook",
  "url": "https://example.com/webhooks",
  "headers": {
    "Authorization": "<AUTHORIZATION_UUID>"
  }
}

```

The workflow action

### Properties

*None*

<h2 id="tocS_add-update-workflow-condition-request">add-update-workflow-condition-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-update-workflow-condition-request"></a>
<a id="schema_add-update-workflow-condition-request"></a>
<a id="tocSadd-update-workflow-condition-request"></a>
<a id="tocsadd-update-workflow-condition-request"></a>

```json
{
  "type": "event",
  "events": {
    "gateway": [
      "payment_approved",
      "payment_pending",
      "payment_declined"
    ]
  }
}

```

The workflow condition

### Properties

*None*

<h2 id="tocS_add-workflow-action-response">add-workflow-action-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-workflow-action-response"></a>
<a id="schema_add-workflow-action-response"></a>
<a id="tocSadd-workflow-action-response"></a>
<a id="tocsadd-workflow-action-response"></a>

```json
{
  "id": "wfa_wlu3wxc26jounofs5iez75qaqa",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/actions/wfa_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The workflow action identifier|
|_links|[workflow-action-links](#schemaworkflow-action-links)|false|none|Links related to the workflow action|

<h2 id="tocS_add-workflow-condition-response">add-workflow-condition-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-workflow-condition-response"></a>
<a id="schema_add-workflow-condition-response"></a>
<a id="tocSadd-workflow-condition-response"></a>
<a id="tocsadd-workflow-condition-response"></a>

```json
{
  "id": "wfc_wlu3wxc26jounofs5iez75qaqa",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The workflow condition identifier|
|_links|[workflow-condition-links](#schemaworkflow-condition-links)|false|none|Links related to the workflow condition|

<h2 id="tocS_add-workflow-request">add-workflow-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-workflow-request"></a>
<a id="schema_add-workflow-request"></a>
<a id="tocSadd-workflow-request"></a>
<a id="tocsadd-workflow-request"></a>

```json
{
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_declined",
          "card_verification_declined",
          "card_verified",
          "payment_authorization_incremented",
          "payment_authorization_increment_declined",
          "payment_capture_declined",
          "payment_captured",
          "payment_refund_declined",
          "payment_refunded",
          "payment_void_declined",
          "payment_voided"
        ],
        "dispute": [
          "dispute_canceled",
          "dispute_evidence_required",
          "dispute_expired",
          "dispute_lost",
          "dispute_resolved",
          "dispute_won"
        ]
      }
    },
    {
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ]
    },
    {
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ]
    }
  ],
  "actions": [
    {
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|A name you can use to describe your workflow|
|active|boolean|false|none|Indicates whether the workflow is currently active|
|conditions|[[workflow-condition](#schemaworkflow-condition)]|false|none|Only one condition of the same type is permitted|
|actions|[[workflow-action](#schemaworkflow-action)]|false|none|One or more workflow actions|

<h2 id="tocS_add-workflow-response">add-workflow-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-workflow-response"></a>
<a id="schema_add-workflow-response"></a>
<a id="tocSadd-workflow-response"></a>
<a id="tocsadd-workflow-response"></a>

```json
{
  "id": "wf_wlu3wxc26jounofs5iez75qaqa",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The workflow identifier|
|_links|[workflow-links](#schemaworkflow-links)|false|none|Links related to the workflow|

<h2 id="tocS_entity-condition">entity-condition</h2>
<!-- backwards compatibility -->
<a id="schemaentity-condition"></a>
<a id="schema_entity-condition"></a>
<a id="tocSentity-condition"></a>
<a id="tocsentity-condition"></a>

```json
{
  "type": "entity",
  "entities": [
    "ent_axclravnqf5u5ejkweijnp5zc4",
    "ent_fidjosfjdisofdjsifdosfuzc4"
  ]
}

```

entity

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the workflow condition|
|entities|[source-entity-hashmap](#schemasource-entity-hashmap)|true|none|ent_axclravnqf5u5ejkweijnp5zc4|

<h2 id="tocS_event-condition">event-condition</h2>
<!-- backwards compatibility -->
<a id="schemaevent-condition"></a>
<a id="schema_event-condition"></a>
<a id="tocSevent-condition"></a>
<a id="tocsevent-condition"></a>

```json
{
  "type": "event",
  "events": {
    "gateway": [
      "card_verified",
      "card_verification_declined",
      "payment_approved",
      "payment_pending",
      "payment_declined",
      "payment_voided",
      "payment_captured",
      "payment_refunded"
    ],
    "disputes": [
      "dispute_canceled",
      "dispute_evidence_required",
      "dispute_expired",
      "dispute_lost",
      "dispute_resolved",
      "dispute_won"
    ]
  }
}

```

event

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the workflow condition|
|events|[source-events-hashmap](#schemasource-events-hashmap)|true|none|none|

<h2 id="tocS_get-entity-condition">get-entity-condition</h2>
<!-- backwards compatibility -->
<a id="schemaget-entity-condition"></a>
<a id="schema_get-entity-condition"></a>
<a id="tocSget-entity-condition"></a>
<a id="tocsget-entity-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74y",
  "type": "entity",
  "entities": [
    "ent_axclravnqf5u5ejkweijnp5zc4",
    "ent_fidjosfjdisofdjsifdosfuzc4"
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

entity

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|
|entities|[source-entity-hashmap](#schemasource-entity-hashmap)|true|none|ent_axclravnqf5u5ejkweijnp5zc4|
|_links|[workflow-condition-links](#schemaworkflow-condition-links)|false|none|Links related to the workflow condition|

<h2 id="tocS_get-event-condition">get-event-condition</h2>
<!-- backwards compatibility -->
<a id="schemaget-event-condition"></a>
<a id="schema_get-event-condition"></a>
<a id="tocSget-event-condition"></a>
<a id="tocsget-event-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74y",
  "type": "event",
  "events": {
    "gateway": [
      "card_verified",
      "card_verification_declined",
      "payment_approved",
      "payment_pending",
      "payment_declined",
      "payment_voided",
      "payment_captured",
      "payment_refunded"
    ],
    "disputes": [
      "dispute_canceled",
      "dispute_evidence_required",
      "dispute_expired",
      "dispute_lost",
      "dispute_resolved",
      "dispute_won"
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

event

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|
|events|[source-events-hashmap](#schemasource-events-hashmap)|true|none|none|
|_links|[workflow-condition-links](#schemaworkflow-condition-links)|false|none|Links related to the workflow condition|

<h2 id="tocS_get-processing-channel-condition">get-processing-channel-condition</h2>
<!-- backwards compatibility -->
<a id="schemaget-processing-channel-condition"></a>
<a id="schema_get-processing-channel-condition"></a>
<a id="tocSget-processing-channel-condition"></a>
<a id="tocsget-processing-channel-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74y",
  "type": "processing_channel",
  "processing_channels": [
    "pc_axclravnqf5u5ejkweijnp5zc4",
    "pc_aascravnas5u5ejkseijnp9zc2"
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

processing_channel

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|
|processing_channels|[source-processing-channel-hashmap](#schemasource-processing-channel-hashmap)|true|none|pc_axclravnqf5u5ejkweijnp5zc4|
|_links|[workflow-condition-links](#schemaworkflow-condition-links)|false|none|Links related to the workflow condition|

<h2 id="tocS_get-workflow-condition">get-workflow-condition</h2>
<!-- backwards compatibility -->
<a id="schemaget-workflow-condition"></a>
<a id="schema_get-workflow-condition"></a>
<a id="tocSget-workflow-condition"></a>
<a id="tocsget-workflow-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74y",
  "type": "event",
  "events": {
    "gateway": [
      "card_verified",
      "card_verification_declined",
      "payment_approved",
      "payment_pending",
      "payment_declined",
      "payment_voided",
      "payment_captured",
      "payment_refunded"
    ],
    "disputes": [
      "dispute_canceled",
      "dispute_evidence_required",
      "dispute_expired",
      "dispute_lost",
      "dispute_resolved",
      "dispute_won"
    ]
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

The get workflow condition

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-event-condition](#schemaget-event-condition)|false|none|Condition that enables a source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-entity-condition](#schemaget-entity-condition)|false|none|Condition that filters based on the entity|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-processing-channel-condition](#schemaget-processing-channel-condition)|false|none|Condition that filters based on the processing channel|

<h2 id="tocS_patch-entity-condition">patch-entity-condition</h2>
<!-- backwards compatibility -->
<a id="schemapatch-entity-condition"></a>
<a id="schema_patch-entity-condition"></a>
<a id="tocSpatch-entity-condition"></a>
<a id="tocspatch-entity-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74e",
  "type": "entity",
  "entities": [
    "ent_axclravnqf5u5ejkweijnp5zc4",
    "ent_fidjosfjdisofdjsifdosfuzc4"
  ]
}

```

entity

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|
|entities|[source-entity-hashmap](#schemasource-entity-hashmap)|true|none|ent_axclravnqf5u5ejkweijnp5zc4|

<h2 id="tocS_patch-event-condition">patch-event-condition</h2>
<!-- backwards compatibility -->
<a id="schemapatch-event-condition"></a>
<a id="schema_patch-event-condition"></a>
<a id="tocSpatch-event-condition"></a>
<a id="tocspatch-event-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74e",
  "type": "event",
  "events": {
    "gateway": [
      "card_verified",
      "card_verification_declined",
      "payment_approved",
      "payment_pending",
      "payment_declined",
      "payment_voided",
      "payment_captured",
      "payment_refunded"
    ],
    "disputes": [
      "dispute_canceled",
      "dispute_evidence_required",
      "dispute_expired",
      "dispute_lost",
      "dispute_resolved",
      "dispute_won"
    ]
  }
}

```

event

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|
|events|[source-events-hashmap](#schemasource-events-hashmap)|true|none|none|

<h2 id="tocS_patch-processing-channel-condition">patch-processing-channel-condition</h2>
<!-- backwards compatibility -->
<a id="schemapatch-processing-channel-condition"></a>
<a id="schema_patch-processing-channel-condition"></a>
<a id="tocSpatch-processing-channel-condition"></a>
<a id="tocspatch-processing-channel-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74e",
  "type": "processing_channel",
  "processing_channels": [
    "pc_axclravnqf5u5ejkweijnp5zc4",
    "pc_aascravnas5u5ejkseijnp9zc2"
  ]
}

```

processing_channel

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|
|processing_channels|[source-processing-channel-hashmap](#schemasource-processing-channel-hashmap)|true|none|pc_axclravnqf5u5ejkweijnp5zc4|

<h2 id="tocS_patch-workflow-condition">patch-workflow-condition</h2>
<!-- backwards compatibility -->
<a id="schemapatch-workflow-condition"></a>
<a id="schema_patch-workflow-condition"></a>
<a id="tocSpatch-workflow-condition"></a>
<a id="tocspatch-workflow-condition"></a>

```json
{
  "id": "wfc_tisekcawefze3l27uaai6hz74e",
  "type": "event",
  "events": {
    "gateway": [
      "card_verified",
      "card_verification_declined",
      "payment_approved",
      "payment_pending",
      "payment_declined",
      "payment_voided",
      "payment_captured",
      "payment_refunded"
    ],
    "disputes": [
      "dispute_canceled",
      "dispute_evidence_required",
      "dispute_expired",
      "dispute_lost",
      "dispute_resolved",
      "dispute_won"
    ]
  }
}

```

The workflow condition

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The workflow condition identifier|
|type|string|true|none|The type of the workflow condition|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[patch-event-condition](#schemapatch-event-condition)|false|none|The condition that enables a source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[patch-entity-condition](#schemapatch-entity-condition)|false|none|The condition that filters, based on the NAS entity. It does not apply to MBC accounts.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[patch-processing-channel-condition](#schemapatch-processing-channel-condition)|false|none|The condition that filters, based on the NAS processing channel. It does not apply to MBC accounts.|

<h2 id="tocS_processing-channel-condition">processing-channel-condition</h2>
<!-- backwards compatibility -->
<a id="schemaprocessing-channel-condition"></a>
<a id="schema_processing-channel-condition"></a>
<a id="tocSprocessing-channel-condition"></a>
<a id="tocsprocessing-channel-condition"></a>

```json
{
  "type": "processing_channel",
  "processing_channels": [
    "pc_axclravnqf5u5ejkweijnp5zc4",
    "pc_aascravnas5u5ejkseijnp9zc2"
  ]
}

```

processing_channel

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the workflow condition|
|processing_channels|[source-processing-channel-hashmap](#schemasource-processing-channel-hashmap)|true|none|pc_axclravnqf5u5ejkweijnp5zc4|

<h2 id="tocS_source-entity-hashmap">source-entity-hashmap</h2>
<!-- backwards compatibility -->
<a id="schemasource-entity-hashmap"></a>
<a id="schema_source-entity-hashmap"></a>
<a id="tocSsource-entity-hashmap"></a>
<a id="tocssource-entity-hashmap"></a>

```json
[
  "ent_axclravnqf5u5ejkweijnp5zc4",
  "ent_fidjosfjdisofdjsifdosfuzc4"
]

```

ent_axclravnqf5u5ejkweijnp5zc4

### Properties

*None*

<h2 id="tocS_source-processing-channel-hashmap">source-processing-channel-hashmap</h2>
<!-- backwards compatibility -->
<a id="schemasource-processing-channel-hashmap"></a>
<a id="schema_source-processing-channel-hashmap"></a>
<a id="tocSsource-processing-channel-hashmap"></a>
<a id="tocssource-processing-channel-hashmap"></a>

```json
[
  "pc_axclravnqf5u5ejkweijnp5zc4",
  "pc_aascravnas5u5ejkseijnp9zc2"
]

```

pc_axclravnqf5u5ejkweijnp5zc4

### Properties

*None*

<h2 id="tocS_workflow-condition">workflow-condition</h2>
<!-- backwards compatibility -->
<a id="schemaworkflow-condition"></a>
<a id="schema_workflow-condition"></a>
<a id="tocSworkflow-condition"></a>
<a id="tocsworkflow-condition"></a>

```json
{
  "type": "event",
  "events": {
    "gateway": [
      "card_verified",
      "card_verification_declined",
      "payment_approved",
      "payment_pending",
      "payment_declined",
      "payment_voided",
      "payment_captured",
      "payment_refunded"
    ],
    "disputes": [
      "dispute_canceled",
      "dispute_evidence_required",
      "dispute_expired",
      "dispute_lost",
      "dispute_resolved",
      "dispute_won"
    ]
  }
}

```

The workflow condition

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[event-condition](#schemaevent-condition)|false|none|Condition that enables a source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[entity-condition](#schemaentity-condition)|false|none|The condition that filters, based on the NAS entity. It does not apply to MBC accounts.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[processing-channel-condition](#schemaprocessing-channel-condition)|false|none|Condition that filters based on the NAS processing channel. It's not applicable for MBC accounts|

<h2 id="tocS_get-all-workflows-response">get-all-workflows-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-all-workflows-response"></a>
<a id="schema_get-all-workflows-response"></a>
<a id="tocSget-all-workflows-response"></a>
<a id="tocsget-all-workflows-response"></a>

```json
{
  "data": [
    {
      "id": "wf_wlu3wxc26jounofs5iez75qaqa",
      "name": "Webhooks workflow",
      "active": true,
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
        }
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[object]|false|none|none|
|» id|string|false|none|The unique identifier of the workflow|
|» name|string|false|none|The name of your workflow|
|» active|boolean|false|none|Indicates whether the workflow is currently active|
|» _links|[workflow-links](#schemaworkflow-links)|false|none|Links related to the workflow|

<h2 id="tocS_get-workflow-response">get-workflow-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-workflow-response"></a>
<a id="schema_get-workflow-response"></a>
<a id="tocSget-workflow-response"></a>
<a id="tocsget-workflow-response"></a>

```json
{
  "id": "wf_34pacj7ae6wexju4avpecxvp6e",
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74e",
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_pending",
          "payment_declined"
        ]
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/conditions/wfc_tisekcawefze3l27uaai6hz74e"
        }
      }
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74y",
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ],
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/conditions/wfc_tisekcawefze3l27uaai6hz74y"
        }
      }
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz26y",
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ],
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/conditions/wfc_tisekcawefze3l27uaai6hz26y"
        }
      }
    }
  ],
  "actions": [
    {
      "id": "wfa_itja4x7zgzye3andzqq62u4hvq",
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/workflows/wf_34pacj7ae6wexju4avpecxvp6e/actions/wfa_itja4x7zgzye3andzqq62u4hvq"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The workflow identifier|
|name|string|false|none|A name you can use to describe your workflow|
|active|boolean|false|none|Indicates whether the workflow is currently active|
|conditions|[[get-workflow-condition](#schemaget-workflow-condition)]|false|none|One or more workflow conditions|
|actions|[[get-workflow-action](#schemaget-workflow-action)]|false|none|One or more workflow actions|
|_links|[workflow-links](#schemaworkflow-links)|false|none|Links related to the workflow|

<h2 id="tocS_patch-workflow-request">patch-workflow-request</h2>
<!-- backwards compatibility -->
<a id="schemapatch-workflow-request"></a>
<a id="schema_patch-workflow-request"></a>
<a id="tocSpatch-workflow-request"></a>
<a id="tocspatch-workflow-request"></a>

```json
{
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_pending",
          "payment_declined"
        ]
      }
    },
    {
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ]
    },
    {
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ]
    }
  ],
  "actions": [
    {
      "workflow_action_id": "wfa_itja4x7zgzye3andzqq62u4hvq",
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|A name to describe the workflow|
|active|boolean|false|none|Indicates whether the workflow is currently active|
|conditions|[[workflow-condition](#schemaworkflow-condition)]|false|none|One or more workflow conditions|
|actions|[[patch-workflow-action](#schemapatch-workflow-action)]|false|none|One or more workflow actions|

<h2 id="tocS_patch-workflow-response">patch-workflow-response</h2>
<!-- backwards compatibility -->
<a id="schemapatch-workflow-response"></a>
<a id="schema_patch-workflow-response"></a>
<a id="tocSpatch-workflow-response"></a>
<a id="tocspatch-workflow-response"></a>

```json
{
  "id": "wf_c7svxlvo2bbuva4f6s3xu4f7wm",
  "name": "Webhooks workflow",
  "active": true,
  "conditions": [
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74e",
      "type": "event",
      "events": {
        "gateway": [
          "payment_approved",
          "payment_pending",
          "payment_declined"
        ]
      }
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz74y",
      "type": "entity",
      "entities": [
        "ent_xyfdshfudosfdshfdiosfds",
        "ent_fidjosfjdisofdjsifdosfu"
      ]
    },
    {
      "id": "wfc_tisekcawefze3l27uaai6hz26y",
      "type": "processing_channel",
      "processing_channels": [
        "pc_axclravnqf5u5ejkweijnp5zc4"
      ]
    }
  ],
  "actions": [
    {
      "id": "wfa_itja4x7zgzye3andzqq62u4hvq",
      "type": "webhook",
      "url": "https://example.com/webhooks",
      "headers": {
        "Authorization": "<AUTHORIZATION_UUID>"
      },
      "signature": {
        "method": "HMACSHA256",
        "key": "8V8x0dLK%AyD*DNS8JJr"
      }
    }
  ],
  "_links": {
    "self": {
      "href": "http://flow.cko.lon/client/workflows/wf_c7svxlvo2bbuva4f6s3xu4f7wm"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The workflow identifier|
|name|string|false|none|A name you can use to describe your workflow|
|active|boolean|false|none|Indicates whether the workflow is currently active|
|conditions|[[patch-workflow-condition](#schemapatch-workflow-condition)]|false|none|One or more workflow conditions|
|actions|[[patch-response-workflow-action](#schemapatch-response-workflow-action)]|false|none|One or more workflow actions|
|_links|[workflow-links](#schemaworkflow-links)|false|none|Links related to the workflow|

<h2 id="tocS_workflow-action-links">workflow-action-links</h2>
<!-- backwards compatibility -->
<a id="schemaworkflow-action-links"></a>
<a id="schema_workflow-action-links"></a>
<a id="tocSworkflow-action-links"></a>
<a id="tocsworkflow-action-links"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/actions/wfa_wlu3wxc26jounofs5iez75qaqa"
  }
}

```

Links related to the workflow action

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|false|none|The URI of the workflow action|

<h2 id="tocS_workflow-condition-links">workflow-condition-links</h2>
<!-- backwards compatibility -->
<a id="schemaworkflow-condition-links"></a>
<a id="schema_workflow-condition-links"></a>
<a id="tocSworkflow-condition-links"></a>
<a id="tocsworkflow-condition-links"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
  }
}

```

Links related to the workflow condition

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|false|none|The URI of the workflow condition|

<h2 id="tocS_workflow-links">workflow-links</h2>
<!-- backwards compatibility -->
<a id="schemaworkflow-links"></a>
<a id="schema_workflow-links"></a>
<a id="tocSworkflow-links"></a>
<a id="tocsworkflow-links"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
  }
}

```

Links related to the workflow

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|true|none|The URI of the workflow|

<h2 id="tocS_test-workflow-request">test-workflow-request</h2>
<!-- backwards compatibility -->
<a id="schematest-workflow-request"></a>
<a id="schema_test-workflow-request"></a>
<a id="tocStest-workflow-request"></a>
<a id="tocstest-workflow-request"></a>

```json
{
  "event_types": {
    "gateway": [
      "payment_approved",
      "payment_captured"
    ],
    "issuing": [
      "3ds_card_enrolled",
      "3ds_card_information_changed"
    ]
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|event_types|object|false|none|Map of source names to their corresponding event types (e.g., gateway, issuing, authentication, etc.)|
|» Source|[string]|false|none|List of event types for this source|
|»» Event Type|string|false|none|none|

<h2 id="tocS_ForexRate">ForexRate</h2>
<!-- backwards compatibility -->
<a id="schemaforexrate"></a>
<a id="schema_ForexRate"></a>
<a id="tocSforexrate"></a>
<a id="tocsforexrate"></a>

```json
{
  "exchange_rate": 1.14208777,
  "currency_pair": "GBPUSD",
  "valid_from": "2019-08-24T14:15:22Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|exchange_rate|number(double)|false|none|The FX rate with Checkout.com margin applied. Up to eight decimal places provided in response.|
|currency_pair|string|false|none|Currency pair|
|valid_from|[Timestamp](#schematimestamp)|false|none|ISO-8601 timestamp of when the FX rate became available in UTC. This applies to the Scheme Acquiring product only.|

<h2 id="tocS_ForexRatesResponse">ForexRatesResponse</h2>
<!-- backwards compatibility -->
<a id="schemaforexratesresponse"></a>
<a id="schema_ForexRatesResponse"></a>
<a id="tocSforexratesresponse"></a>
<a id="tocsforexratesresponse"></a>

```json
{
  "product": "card_payouts",
  "source": "visa",
  "rates": [
    {
      "exchange_rate": 1.14208777,
      "currency_pair": "GBPEUR"
    },
    {
      "exchange_rate": 0.83708142,
      "currency_pair": "USDGBP"
    }
  ],
  "invalid_currency_pairs": [
    "XXXAAA"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|product|[ForexProduct](#schemaforexproduct)|false|none|The Checkout.com Forex product you want to get rates for.|
|source|[ForexSource](#schemaforexsource)|false|none|The scheme that provided the FX rates.<br/>If `product` is `daily_acquiring`, this field is not required.|
|rates|[[ForexRate](#schemaforexrate)]|false|none|List of FX rates with Checkout.com margin applied|
|invalid_currency_pairs|[string]|false|none|List of currency pairs that Checkout.com was unable to provide rates for|

<h2 id="tocS_ForexProcessingChannelId">ForexProcessingChannelId</h2>
<!-- backwards compatibility -->
<a id="schemaforexprocessingchannelid"></a>
<a id="schema_ForexProcessingChannelId"></a>
<a id="tocSforexprocessingchannelid"></a>
<a id="tocsforexprocessingchannelid"></a>

```json
"pc_vxt6yftthv4e5flqak6w2i7rim"

```

The <a href="https://www.checkout.com/docs/business-operations/use-the-dashboard/manage-processing-channels" target="_blank">processing channel's</a> unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The <a href="https://www.checkout.com/docs/business-operations/use-the-dashboard/manage-processing-channels" target="_blank">processing channel's</a> unique identifier.|

<h2 id="tocS_ForexProduct">ForexProduct</h2>
<!-- backwards compatibility -->
<a id="schemaforexproduct"></a>
<a id="schema_ForexProduct"></a>
<a id="tocSforexproduct"></a>
<a id="tocsforexproduct"></a>

```json
"card_payouts"

```

The Checkout.com Forex product you want to get rates for.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The Checkout.com Forex product you want to get rates for.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card_payouts|
|*anonymous*|daily_acquiring|
|*anonymous*|scheme_acquiring|

<h2 id="tocS_ForexSource">ForexSource</h2>
<!-- backwards compatibility -->
<a id="schemaforexsource"></a>
<a id="schema_ForexSource"></a>
<a id="tocSforexsource"></a>
<a id="tocsforexsource"></a>

```json
"visa"

```

The scheme that provided the FX rates.<br/>If `product` is `daily_acquiring`, this field is not required.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The scheme that provided the FX rates.<br/>If `product` is `daily_acquiring`, this field is not required.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|mastercard|
|*anonymous*|visa|

<h2 id="tocS_ForwardRequest">ForwardRequest</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequest"></a>
<a id="schema_ForwardRequest"></a>
<a id="tocSforwardrequest"></a>
<a id="tocsforwardrequest"></a>

```json
{
  "source": {
    "id": "src_v5rgkf3gdtpuzjqesyxmyodnya",
    "type": "id"
  },
  "reference": "ORD-5023-4E89",
  "processing_channel_id": "pc_azsiyswl7bwe2ynjzujy7lcjca",
  "network_token": {
    "enabled": true,
    "request_cryptogram": false
  },
  "destination_request": {
    "url": "https://example.com/payments",
    "method": "POST",
    "headers": {
      "encrypted": "<JWE encrypted JSON object with string values>",
      "raw": {
        "Idempotency-Key": "xe4fad12367dfgrds",
        "Content-Type": "application/json"
      }
    },
    "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}",
    "signature": {
      "type": "dlocal",
      "dlocal_parameters": {
        "secret_key": "9f439fe1a9f96e67b047d3c1a28c33a2e"
      }
    },
    "variables": [
      {
        "name": "card_data",
        "value": "{\"card_number\":\"{{card_number}}\",\"expiry\":\"{{card_expiry_month}}\"}"
      },
      {
        "name": "public_key",
        "value": "{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"enc\",\"kid\":\"key-001\"}"
      }
    ],
    "query": [
      {
        "name": "api_key",
        "value": "1234567890"
      },
      {
        "name": "user_id",
        "value": "1234567890"
      }
    ]
  }
}

```

The request template to forward to the third-party endpoint.

Template values will be replaced before the request is forwarded.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[ForwardRequestSource](#schemaforwardrequestsource)|true|none|The payment source to enrich the forward request with.<br><br>You can provide <a href="https://www.checkout.com/docs/payments/manage-payments/forward-stored-payment-credentials#Placeholder_values" target="_blank\">placeholder values</a> in `destination_request.body`. The request will be enriched with the respective payment credentials from the token or payment instrument you specified. For example, `{{card_number}}`.|
|reference|string|false|none|The unique reference for the forward request.|
|processing_channel_id|string|false|none|The processing channel ID to associate the billing for the forward request with.|
|network_token|[ForwardRequestNetworkToken](#schemaforwardrequestnetworktoken)|false|none|Specifies if and how a network token should be used in the forward request.|
|destination_request|[ForwardDestinationRequest](#schemaforwarddestinationrequest)|true|none|The parameters of the forward request.|

<h2 id="tocS_ForwardResponse">ForwardResponse</h2>
<!-- backwards compatibility -->
<a id="schemaforwardresponse"></a>
<a id="schema_ForwardResponse"></a>
<a id="tocSforwardresponse"></a>
<a id="tocsforwardresponse"></a>

```json
{
  "request_id": "fwd_01HK153X00VZ1K15Z3HYC0QGPN",
  "destination_response": {
    "status": 201,
    "headers": {
      "Cko-Request-Id": [
        "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
      ],
      "Content-Type": [
        "application/json"
      ]
    },
    "body": "{\"id\": \"pay_mbabizu24mvu3mela5njyhpit4\", \"action_id\": \"act_mbabizu24mvu3mela5njyhpit4\", \"amount\": 6540, \"currency\": \"USD\", \"approved\": true, \"status\": \"Authorized\", \"auth_code\": \"770687\", \"response_code\": \"10000\", \"response_summary\": \"Approved\", \"_links\": {\"self\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4\"}, \"action\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions\"}, \"void\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids\"}, \"capture\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures\"}}}"
  },
  "source": {
    "id": "src_evls5rkafabudm3x6gejc4bbo4",
    "bin": "45434748",
    "last4": "9996",
    "fingerprint": "B086A9386241A0BDCBEFAFC1E4FD5C3DD04684AAD21A126CB426C05555AC86A9"
  }
}

```

The response to the forward request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|true|none|The unique identifier for the forward request.|
|destination_response|[ForwardBodyResponse](#schemaforwardbodyresponse)|false|none|The HTTP response received from the destination, if the forward request completed successfully. Sensitive PCI data will be removed from the response.|
|source|object|false|none|The metadata of the forwarded card credentials.|
|» id|string|false|none|The identifier of the payment instrument with the forwarded card credentials.<br><br>When `source.type` is `"token"`, only returned if the `source.store_for_future_use` is true.|
|» bin|string|true|none|The card issuer's Bank Identification Number (BIN)|
|» last4|string|true|none|The last four digits of the card number|
|» fingerprint|string|true|none|Uniquely identifies this particular card. You can use this to compare cards across customers.|

<h2 id="tocS_GetForwardRequestResponse">GetForwardRequestResponse</h2>
<!-- backwards compatibility -->
<a id="schemagetforwardrequestresponse"></a>
<a id="schema_GetForwardRequestResponse"></a>
<a id="tocSgetforwardrequestresponse"></a>
<a id="tocsgetforwardrequestresponse"></a>

```json
{
  "request_id": "fwd_01HK153X00VZ1K15Z3HYC0QGPN",
  "reference": "ORD-5023-4E89",
  "entity_id": "ent_lp6h57qskk6ubewfk3pq4f2c2y",
  "destination_request": {
    "url": "https://example.com/payments",
    "method": "POST",
    "headers": {
      "Authorization": "***redacted***",
      "Idempotency-Key": "xe4fad12367dfgrds",
      "Content-Type": "application/json"
    },
    "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}"
  },
  "destination_response": {
    "status": 201,
    "headers": {
      "Cko-Request-Id": [
        "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
      ],
      "Content-Type": [
        "application/json"
      ]
    },
    "body": "{\"id\": \"pay_mbabizu24mvu3mela5njyhpit4\", \"action_id\": \"act_mbabizu24mvu3mela5njyhpit4\", \"amount\": 6540, \"currency\": \"USD\", \"approved\": true, \"status\": \"Authorized\", \"auth_code\": \"770687\", \"response_code\": \"10000\", \"response_summary\": \"Approved\", \"_links\": {\"self\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4\"}, \"action\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions\"}, \"void\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids\"}, \"capture\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures\"}}}"
  },
  "created_on": "2024-01-02T15:04:05+00:00"
}

```

The response to the forward request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|true|none|The unique identifier for the forward request.|
|reference|string|false|none|The unique reference for the forward request.|
|entity_id|string|true|none|The client entity linked to the forward request.|
|destination_request|[GetForwardRequestDestinationRequest](#schemagetforwardrequestdestinationrequest)|true|none|The parameters of the HTTP request forwarded to the destination.|
|destination_response|[GetForwardRequestDestinationResponse](#schemagetforwardrequestdestinationresponse)|false|none|The HTTP response received from the destination. <br><br>Sensitive PCI data is not included in the response.|
|created_on|string(date-time)|true|none|The date and time the forward request was created, in UTC.|

<h2 id="tocS_ForwardBodyHeadersRequest">ForwardBodyHeadersRequest</h2>
<!-- backwards compatibility -->
<a id="schemaforwardbodyheadersrequest"></a>
<a id="schema_ForwardBodyHeadersRequest"></a>
<a id="tocSforwardbodyheadersrequest"></a>
<a id="tocsforwardbodyheadersrequest"></a>

```json
{
  "encrypted": "<JWE encrypted JSON object with string values>",
  "raw": {
    "Idempotency-Key": "xe4fad12367dfgrds",
    "Content-Type": "application/json"
  }
}

```

The request headers to include in the forward request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|encrypted|string|false|none|The encrypted headers to include in the forward request, as a JSON object with string values encrypted with JSON Web Encryption (JWE).|
|raw|object|true|none|The raw headers to include in the forward request.|
|» **additionalProperties**|string|false|none|The header value.|

<h2 id="tocS_ForwardBodyResponse">ForwardBodyResponse</h2>
<!-- backwards compatibility -->
<a id="schemaforwardbodyresponse"></a>
<a id="schema_ForwardBodyResponse"></a>
<a id="tocSforwardbodyresponse"></a>
<a id="tocsforwardbodyresponse"></a>

```json
{
  "status": 201,
  "headers": {
    "Cko-Request-Id": [
      "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
    ],
    "Content-Type": [
      "application/json"
    ]
  },
  "body": "{\"id\": \"pay_mbabizu24mvu3mela5njyhpit4\", \"action_id\": \"act_mbabizu24mvu3mela5njyhpit4\", \"amount\": 6540, \"currency\": \"USD\", \"approved\": true, \"status\": \"Authorized\", \"auth_code\": \"770687\", \"response_code\": \"10000\", \"response_summary\": \"Approved\", \"_links\": {\"self\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4\"}, \"action\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions\"}, \"void\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids\"}, \"capture\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures\"}}}"
}

```

The response returned by the third-party endpoint the forward request was sent to.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|number|true|none|The HTTP status code of the destination response.|
|headers|object|true|none|The destination response's HTTP headers.|
|» **additionalProperties**|[string]|false|none|The header values.|
|body|string|true|none|The destination response's HTTP message body.|

<h2 id="tocS_ForwardDestinationRequest">ForwardDestinationRequest</h2>
<!-- backwards compatibility -->
<a id="schemaforwarddestinationrequest"></a>
<a id="schema_ForwardDestinationRequest"></a>
<a id="tocSforwarddestinationrequest"></a>
<a id="tocsforwarddestinationrequest"></a>

```json
{
  "url": "https://example.com/payments",
  "method": "POST",
  "headers": {
    "encrypted": "<JWE encrypted JSON object with string values>",
    "raw": {
      "Idempotency-Key": "xe4fad12367dfgrds",
      "Content-Type": "application/json"
    }
  },
  "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}",
  "signature": {
    "type": "dlocal",
    "dlocal_parameters": {
      "secret_key": "9f439fe1a9f96e67b047d3c1a28c33a2e"
    }
  },
  "variables": [
    {
      "name": "card_data",
      "value": "{\"card_number\":\"{{card_number}}\",\"expiry\":\"{{card_expiry_month}}\"}"
    },
    {
      "name": "public_key",
      "value": "{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"enc\",\"kid\":\"key-001\"}"
    }
  ],
  "query": [
    {
      "name": "api_key",
      "value": "1234567890"
    },
    {
      "name": "user_id",
      "value": "1234567890"
    }
  ]
}

```

The details of the request to forward.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|url|string|true|none|The URL to forward the request to.|
|method|string|true|none|The HTTP method to use for the forward request.|
|headers|[ForwardBodyHeadersRequest](#schemaforwardbodyheadersrequest)|true|none|The HTTP headers to include in the forward request.|
|body|string|true|none|The HTTP message body to include in the forward request.<br><br>If you provide `source.id` or `source.token`, you can specify <a href="https://www.checkout.com/docs/payments/manage-payments/forward-stored-payment-credentials#Placeholder_values" target="_blank\">placeholder values</a> in the body. The request will be enriched with the respective payment details from the token or payment instrument you specified. For example, `{{card_number}}`.|
|signature|[ForwardRequestSignature](#schemaforwardrequestsignature)|false|none|Optional configuration to add a signature to the forwarded HTTP request.|
|variables|[object]|false|none|The variables used in the forward request body. <br><br>You can provide <a href="https://www.checkout.com/docs/payments/manage-payments/forward-stored-payment-credentials#Placeholder_values" target="_blank\">placeholder values</a> in `destination_request.variables.value`. The request will be enriched with the payment credentials from the token or payment instrument you specified. For example, `{{card_number}}`. To reference variables, use `{{variable_name}}`.|
|» name|string|false|none|The variable name.|
|» value|string|false|none|The variable value.|
|query|[object]|false|none|The query parameters used in the forward request. These values are added to the destination URL as query parameters.|
|» name|string|false|none|The query parameter name.|
|» value|string|false|none|The query parameter value.|

#### Enumerated Values

|Property|Value|
|---|---|
|method|GET|
|method|HEAD|
|method|POST|
|method|PUT|
|method|DELETE|
|method|OPTIONS|
|method|TRACE|
|method|PATCH|

<h2 id="tocS_ForwardRequestNetworkToken">ForwardRequestNetworkToken</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestnetworktoken"></a>
<a id="schema_ForwardRequestNetworkToken"></a>
<a id="tocSforwardrequestnetworktoken"></a>
<a id="tocsforwardrequestnetworktoken"></a>

```json
{
  "enabled": true,
  "request_cryptogram": false
}

```

Specifies if and how a network token should be used in the forward request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|false|none|Specifies whether to use a network token.|
|request_cryptogram|boolean|false|none|Specifies whether to generate a cryptogram. For example, for customer-initiated transactions (CITs).<br><br>If you set `network_token.enabled` to `true`, you must provide this field.|

<h2 id="tocS_ForwardRequestSignature">ForwardRequestSignature</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestsignature"></a>
<a id="schema_ForwardRequestSignature"></a>
<a id="tocSforwardrequestsignature"></a>
<a id="tocsforwardrequestsignature"></a>

```json
{
  "type": "dlocal",
  "dlocal_parameters": {
    "secret_key": "9f439fe1a9f96e67b047d3c1a28c33a2e"
  }
}

```

Optional configuration to add a signature to the forwarded HTTP request.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ForwardRequestSignatureDLocal](#schemaforwardrequestsignaturedlocal)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ForwardRequestSignatureMastercard](#schemaforwardrequestsignaturemastercard)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ForwardRequestSignatureVisa](#schemaforwardrequestsignaturevisa)|false|none|none|

<h2 id="tocS_ForwardRequestSignatureDLocal">ForwardRequestSignatureDLocal</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestsignaturedlocal"></a>
<a id="schema_ForwardRequestSignatureDLocal"></a>
<a id="tocSforwardrequestsignaturedlocal"></a>
<a id="tocsforwardrequestsignaturedlocal"></a>

```json
{
  "type": "dlocal",
  "dlocal_parameters": {
    "secret_key": "string"
  }
}

```

dlocal

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The identifier of the supported signature generation method or a specific third-party service.|
|dlocal_parameters|object|true|none|The parameters required to generate an HMAC signature for the dLocal API. See their [documentation](https://docs.dlocal.com/reference/payins-security) for details.<br><br>This method requires you to provide the `X-Login` header value in the destination request headers.<br><br>When used, the Forward API appends the `X-Date` and `Authorization` headers to the outgoing HTTP request before forwarding.|
|» secret_key|string|true|none|The secret key used to generate the request signature. This is part of the dLocal API credentials.|

<h2 id="tocS_ForwardRequestSignatureMastercard">ForwardRequestSignatureMastercard</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestsignaturemastercard"></a>
<a id="schema_ForwardRequestSignatureMastercard"></a>
<a id="tocSforwardrequestsignaturemastercard"></a>
<a id="tocsforwardrequestsignaturemastercard"></a>

```json
{
  "type": "mastercard",
  "mastercard_parameters": {
    "consumer_key": "string",
    "signing_key": "string"
  }
}

```

mastercard

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The identifier of the supported signature generation method or a specific third-party service.|
|mastercard_parameters|object|true|none|The parameters required to generate an OAuth 1.0a authentication and request signature header for the Mastercard APIs. For more information, see [Mastercard documentation](https://developer.mastercard.com/platform/documentation/authentication/using-oauth-1a-to-access-mastercard-apis/).<br><br>When used, the Forward API appends the `Authorization` header to the outgoing HTTP request before forwarding.|
|» consumer_key|string|true|none|An identifier of the client application. Part of the Mastercard APIs credentials.|
|» signing_key|string|true|none|A 2048-bit private RSA key used to generate request signatures and confirming ownership of the consumer key. Part of the Mastercard APIs credentials.|

<h2 id="tocS_ForwardRequestSignatureVisa">ForwardRequestSignatureVisa</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestsignaturevisa"></a>
<a id="schema_ForwardRequestSignatureVisa"></a>
<a id="tocSforwardrequestsignaturevisa"></a>
<a id="tocsforwardrequestsignaturevisa"></a>

```json
{
  "type": "visa",
  "visa_parameters": {
    "shared_secret": "string",
    "remove_resource_path_prefix": "/"
  }
}

```

visa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The identifier of the supported signature generation method or a specific third-party service.|
|visa_parameters|object|true|none|The parameters required to generate an HMAC-based request signature for the Visa APIs. For more information, see [Visa documentation](https://developer.visa.com/pages/working-with-visa-apis/x-pay-token).<br><br>This method requires you to provide the `apikey` query parameter value in the destination request.<br><br>When used, the Forward API appends the `X-PAY-TOKEN` header to the outgoing HTTP request before forwarding.|
|» shared_secret|string|true|none|The secret key used to generate the request signature; part of the Visa API credentials.|
|» remove_resource_path_prefix|string|false|none|Some Visa APIs require a prefix to be removed from the resource path used to calculate the signature.<br/><br>By default, only the leading slash is removed. </p><br><br>For more information, see [Visa documentation](https://developer.visa.com/pages/working-with-visa-apis/x-pay-token).|

<h2 id="tocS_ForwardRequestSource">ForwardRequestSource</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestsource"></a>
<a id="schema_ForwardRequestSource"></a>
<a id="tocSforwardrequestsource"></a>
<a id="tocsforwardrequestsource"></a>

```json
{
  "id": "src_v5rgkf3gdtpuzjqesyxmyodnya",
  "type": "id"
}

```

The payment source to enrich the forward request with.

You can provide <a href="https://www.checkout.com/docs/payments/manage-payments/forward-stored-payment-credentials#Placeholder_values" target="_blank\">placeholder values</a> in `destination_request.body`. The request will be enriched with the respective payment credentials from the token or payment instrument you specified. For example, `{{card_number}}`.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ForwardRequestIdSource](#schemaforwardrequestidsource)|false|none|The payment instrument to enrich the forward request with.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ForwardRequestTokenSource](#schemaforwardrequesttokensource)|false|none|The token to enrich the forward request with.|

<h2 id="tocS_ForwardValidationError">ForwardValidationError</h2>
<!-- backwards compatibility -->
<a id="schemaforwardvalidationerror"></a>
<a id="schema_ForwardValidationError"></a>
<a id="tocSforwardvalidationerror"></a>
<a id="tocsforwardvalidationerror"></a>

```json
{
  "request_id": "fwd_01HK153X00VZ1K15Z3HYC0QGPN",
  "error_type": "request_invalid",
  "error_codes": [
    "processing_channel_id_required"
  ],
  "errors": {
    "processing_channel_id": [
      "The processing_channel_id field is required"
    ]
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|true|none|none|
|error_type|string|true|none|none|
|error_codes|[string]|true|none|none|
|errors|object|false|none|none|
|» **additionalProperties**|[string]|false|none|The field's error messages.|

<h2 id="tocS_GetForwardRequestDestinationRequest">GetForwardRequestDestinationRequest</h2>
<!-- backwards compatibility -->
<a id="schemagetforwardrequestdestinationrequest"></a>
<a id="schema_GetForwardRequestDestinationRequest"></a>
<a id="tocSgetforwardrequestdestinationrequest"></a>
<a id="tocsgetforwardrequestdestinationrequest"></a>

```json
{
  "url": "https://example.com/payments",
  "method": "POST",
  "headers": {
    "Authorization": "***redacted***",
    "Idempotency-Key": "xe4fad12367dfgrds",
    "Content-Type": "application/json"
  },
  "body": "{\"amount\": 1000, \"currency\": \"USD\", \"reference\": \"some_reference\", \"source\": {\"type\": \"card\", \"number\": \"{{card_number}}\", \"expiry_month\": \"{{card_expiry_month}}\", \"expiry_year\": \"{{card_expiry_year_yyyy}}\", \"card_pin\": \"{{card_pin}}\", \"name\": \"Ali Farid\"}, \"payment_type\": \"Regular\", \"authorization_type\": \"Final\", \"capture\": true, \"processing_channel_id\": \"pc_xxxxxxxxxxx\", \"risk\": {\"enabled\": false}, \"merchant_initiated\": true}"
}

```

The details of the request to forward.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|url|string|true|none|The URL of the forward request.|
|method|string|true|none|The HTTP method of the forward request.|
|headers|object|true|none|The HTTP headers of the forward request. <br><br>Encrypted and sensitive header values are redacted.|
|» **additionalProperties**|string|false|none|The header value.|
|body|string|true|none|The HTTP message body of the forward request. <br><br>This is the original value used to initiate the request, with placeholder value text included. For example, `{{card_number}}` is not replaced with an actual card number.|

<h2 id="tocS_GetForwardRequestDestinationResponse">GetForwardRequestDestinationResponse</h2>
<!-- backwards compatibility -->
<a id="schemagetforwardrequestdestinationresponse"></a>
<a id="schema_GetForwardRequestDestinationResponse"></a>
<a id="tocSgetforwardrequestdestinationresponse"></a>
<a id="tocsgetforwardrequestdestinationresponse"></a>

```json
{
  "status": 201,
  "headers": {
    "Cko-Request-Id": [
      "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
    ],
    "Content-Type": [
      "application/json"
    ]
  },
  "body": "{\"id\": \"pay_mbabizu24mvu3mela5njyhpit4\", \"action_id\": \"act_mbabizu24mvu3mela5njyhpit4\", \"amount\": 6540, \"currency\": \"USD\", \"approved\": true, \"status\": \"Authorized\", \"auth_code\": \"770687\", \"response_code\": \"10000\", \"response_summary\": \"Approved\", \"_links\": {\"self\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4\"}, \"action\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions\"}, \"void\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids\"}, \"capture\": {\"href\": \"https://{prefix}.api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures\"}}}"
}

```

The response returned by the third-party endpoint the forward request was sent to.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|number|true|none|The HTTP status code returned with the destination response.|
|headers|object|true|none|The destination response's HTTP headers.|
|» **additionalProperties**|[string]|false|none|The header values.|
|body|string|true|none|The destination response's HTTP message body.|

<h2 id="tocS_ForwardRequestIdSource">ForwardRequestIdSource</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequestidsource"></a>
<a id="schema_ForwardRequestIdSource"></a>
<a id="tocSforwardrequestidsource"></a>
<a id="tocsforwardrequestidsource"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "cvv_token": "tok_wnw2grxl4hbufp7q55tw2pb2t4",
  "pin_token": "tok_wnw2grxl4hbufp7q55tw2pb2t4"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|
|id|string|true|none|The unique identifier of the payment instrument.|
|cvv_token|string|false|none|The unique token for the card's security code.<br><br>Checkout.com does not store a card's Card Verification Value (CVV) with its associated payment instrument. <br><br>To pass a CVV with your forward request, use the Frames SDK for <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-mobile-app/accept-a-payment-on-your-android-app#Tokenize_a_CVV">Android</a> or <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-mobile-app/accept-a-payment-on-your-ios-app#Tokenize_a_security_code">iOS</a> to collect and tokenize the CVV and pass the value in this field.<br><br>The token will replace the placeholder `{{card_cvv}}` value in `destination_request.body`.|
|pin_token|string|false|none|The unique token for the first 2 digits of the card's Personal Identification Number (PIN).  <br><br>Checkout.com does not store a card's PIN with its associated payment instrument. <br><br>In specific regions, card holders must enter the first two digits of their 4-digit card PIN to confirm card ownership.  <br><br>To provide the first 2 digits of the PIN with your forward request:  <br><br>1. Collect the PIN from the user.  <br>2. tokenize it using the  `/tokens` [endpoint](/#operation/requestAToken) setting `type` to `pin`.  <br>3. Pass the resulting  `token` value of the response in this field.  <br><br>This token replaces the `{{card_pin}}` placeholder value in `destination_request.body`.|

<h2 id="tocS_ForwardRequestTokenSource">ForwardRequestTokenSource</h2>
<!-- backwards compatibility -->
<a id="schemaforwardrequesttokensource"></a>
<a id="schema_ForwardRequestTokenSource"></a>
<a id="tocSforwardrequesttokensource"></a>
<a id="tocsforwardrequesttokensource"></a>

```json
{
  "type": "token",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "store_for_future_use": false
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|
|token|string|true|none|The unique Checkout.com token.|
|store_for_future_use|boolean|false|none|Specifies whether to store the tokenized credentials as a payment instrument and return its identifier in the response.|

<h2 id="tocS_CreateSecretPlaintextRequest">CreateSecretPlaintextRequest</h2>
<!-- backwards compatibility -->
<a id="schemacreatesecretplaintextrequest"></a>
<a id="schema_CreateSecretPlaintextRequest"></a>
<a id="tocScreatesecretplaintextrequest"></a>
<a id="tocscreatesecretplaintextrequest"></a>

```json
{
  "name": "secret_name",
  "value": "my_secret_value",
  "entity_id": "ent_svrxgarj6qru5pzx4m4movyney"
}

```

Request to create a secret with plaintext value

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|Secret name. <br/><br>Format – 1-64 characters. Alphanumeric and underscore.|
|value|string|true|none|Plaintext secret value. Max 8KB.|
|entity_id|string|false|none|Optional.When provided, the secret is scoped to this entity|

<h2 id="tocS_SecretResponse">SecretResponse</h2>
<!-- backwards compatibility -->
<a id="schemasecretresponse"></a>
<a id="schema_SecretResponse"></a>
<a id="tocSsecretresponse"></a>
<a id="tocssecretresponse"></a>

```json
{
  "name": "secret_name",
  "created_at": "2025-10-14T00:00:00Z",
  "updated_at": "2025-10-14T00:00:00Z",
  "version": 1,
  "entity_id": "ent_123"
}

```

Secret response metadata. The secret value is never returned in responses.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|Secret name (1-64 characters, alphanumeric and underscore)|
|created_at|string(date-time)|true|none|Timestamp when the secret was created.|
|updated_at|string(date-time)|true|none|Timestamp when the secret was last updated.|
|version|integer|true|none|Version number.|
|entity_id|string|false|none|Entity ID if the secret is scoped to a specific entity.|

<h2 id="tocS_UpdateSecretRequest">UpdateSecretRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatesecretrequest"></a>
<a id="schema_UpdateSecretRequest"></a>
<a id="tocSupdatesecretrequest"></a>
<a id="tocsupdatesecretrequest"></a>

```json
{
  "entity_id": "ent_kf3pqe272lqevcpx5xtlndgcii",
  "value": "NEW_VALUE_1"
}

```

Request to update an existing secret. At least one of `value` or `entity_id` must be provided.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|entity_id|string|false|none|Update the entity scope.|
|value|string|false|none|New plaintext secret value. Max 8KB.|

<h2 id="tocS_GooglePayDomainListResponse">GooglePayDomainListResponse</h2>
<!-- backwards compatibility -->
<a id="schemagooglepaydomainlistresponse"></a>
<a id="schema_GooglePayDomainListResponse"></a>
<a id="tocSgooglepaydomainlistresponse"></a>
<a id="tocsgooglepaydomainlistresponse"></a>

```json
{
  "domains": [
    "example.com"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|domains|[string]|true|none|The list of domains registered for the entity.|

<h2 id="tocS_GooglePayEnrollmentRequest">GooglePayEnrollmentRequest</h2>
<!-- backwards compatibility -->
<a id="schemagooglepayenrollmentrequest"></a>
<a id="schema_GooglePayEnrollmentRequest"></a>
<a id="tocSgooglepayenrollmentrequest"></a>
<a id="tocsgooglepayenrollmentrequest"></a>

```json
{
  "entity_id": "ent_uzm3uxtssvmuxnyrfdffcyjxeu",
  "email_address": "test@gmail.com",
  "accept_terms_of_service": true
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|entity_id|string|true|none|The unique identifier of the entity to enroll.|
|email_address|string|true|none|The email address of the user accepting the <a href=https://payments.developers.google.com/terms/sellertos>Google terms of service</a>.|
|accept_terms_of_service|boolean|true|none|Indicates acceptance of the <a href=https://payments.developers.google.com/terms/sellertos>Google terms of service</a>. Must be true to proceed with enrollment.|

<h2 id="tocS_GooglePayEnrollmentResponse">GooglePayEnrollmentResponse</h2>
<!-- backwards compatibility -->
<a id="schemagooglepayenrollmentresponse"></a>
<a id="schema_GooglePayEnrollmentResponse"></a>
<a id="tocSgooglepayenrollmentresponse"></a>
<a id="tocsgooglepayenrollmentresponse"></a>

```json
{
  "merchant_id": "01234567890123456789",
  "tos_accepted_time": "2014-10-02T15:01:23Z",
  "state": "ACTIVE"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|merchant_id|string|false|none|The Google Pay merchant ID associated with the entity.|
|tos_accepted_time|string(date-time)|true|none|An ISO 8601 timestamp of when the [Google terms of service](https://payments.developers.google.com/terms/sellertos) were accepted.|
|state|string|true|none|The current enrollment state of the entity.|

#### Enumerated Values

|Property|Value|
|---|---|
|state|ACTIVE|
|state|INACTIVE|

<h2 id="tocS_GooglePayEnrollmentStateResponse">GooglePayEnrollmentStateResponse</h2>
<!-- backwards compatibility -->
<a id="schemagooglepayenrollmentstateresponse"></a>
<a id="schema_GooglePayEnrollmentStateResponse"></a>
<a id="tocSgooglepayenrollmentstateresponse"></a>
<a id="tocsgooglepayenrollmentstateresponse"></a>

```json
{
  "state": "ACTIVE"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|state|string|true|none|The current enrollment state of the entity.|

#### Enumerated Values

|Property|Value|
|---|---|
|state|ACTIVE|
|state|INACTIVE|

<h2 id="tocS_GooglePayErrorResponse">GooglePayErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemagooglepayerrorresponse"></a>
<a id="schema_GooglePayErrorResponse"></a>
<a id="tocSgooglepayerrorresponse"></a>
<a id="tocsgooglepayerrorresponse"></a>

```json
{
  "error_codes": [
    "string"
  ],
  "error_type": "invalid_request",
  "request_id": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error_codes|[string]|false|none|none|
|error_type|string|false|none|none|
|request_id|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|error_type|invalid_request|

<h2 id="tocS_GooglePayRegisterDomainRequest">GooglePayRegisterDomainRequest</h2>
<!-- backwards compatibility -->
<a id="schemagooglepayregisterdomainrequest"></a>
<a id="schema_GooglePayRegisterDomainRequest"></a>
<a id="tocSgooglepayregisterdomainrequest"></a>
<a id="tocsgooglepayregisterdomainrequest"></a>

```json
{
  "web_domain": "some.example.com"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|web_domain|string(hostname)|true|none|The web domain to register for an actively enrolled entity.|

<h2 id="tocS_GetHostedPaymentsResponse">GetHostedPaymentsResponse</h2>
<!-- backwards compatibility -->
<a id="schemagethostedpaymentsresponse"></a>
<a id="schema_GetHostedPaymentsResponse"></a>
<a id="tocSgethostedpaymentsresponse"></a>
<a id="tocsgethostedpaymentsresponse"></a>

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Payment Pending",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[HostedPaymentId](#schemahostedpaymentid)|true|none|The unique identifier for a Hosted Payments Page.|
|status|string|true|none|The status of the Hosted Payments Page:<br>  - `Payment Pending`: The Hosted Payments Page can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.<br>  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.|
|payment_id|string|false|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|success_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a successful payment.|
|cancel_url|string(uri)|true|none|The provided URL your customer will be redirected to if the payment is cancelled.|
|failure_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a failed payment.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|_links|[GetHostedPaymentsResponseLinks](#schemagethostedpaymentsresponselinks)|true|none|The links related to the Hosted Payments Page.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[GetHostedPaymentsResponseStatusPaymentPending](#schemagethostedpaymentsresponsestatuspaymentpending)|false|none|A Hosted Payments Page that can accept a payment from a customer.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[GetHostedPaymentsResponseStatusPaymentReceived](#schemagethostedpaymentsresponsestatuspaymentreceived)|false|none|A Hosted Payments Page that has received a payment|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[GetHostedPaymentsResponseStatusExpired](#schemagethostedpaymentsresponsestatusexpired)|false|none|An expired Hosted Payments Page.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Payment Pending|
|status|Payment Received|
|status|Expired|

<h2 id="tocS_GetHostedPaymentsResponseLinks">GetHostedPaymentsResponseLinks</h2>
<!-- backwards compatibility -->
<a id="schemagethostedpaymentsresponselinks"></a>
<a id="schema_GetHostedPaymentsResponseLinks"></a>
<a id="tocSgethostedpaymentsresponselinks"></a>
<a id="tocsgethostedpaymentsresponselinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
  },
  "redirect": {
    "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
  }
}

```

The links related to the Hosted Payments Page.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|true|none|The URI of the Hosted Payments Page details.|
|redirect|[Link](#schemalink)|true|none|The link to visit the Hosted Payments Page.|
|payment|[Link](#schemalink)|false|none|The URI of the in progress or completed payment for this Hosted Payments Page.|
|payment_actions|[Link](#schemalink)|false|none|The URI of the actions associated with the in progress or completed payment for this Hosted Payments Page.|

<h2 id="tocS_GetHostedPaymentsResponseStatusExpired">GetHostedPaymentsResponseStatusExpired</h2>
<!-- backwards compatibility -->
<a id="schemagethostedpaymentsresponsestatusexpired"></a>
<a id="schema_GetHostedPaymentsResponseStatusExpired"></a>
<a id="tocSgethostedpaymentsresponsestatusexpired"></a>
<a id="tocsgethostedpaymentsresponsestatusexpired"></a>

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Expired",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}

```

Expired

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[HostedPaymentId](#schemahostedpaymentid)|true|none|The unique identifier for a Hosted Payments Page.|
|status|string|true|none|The status of the Hosted Payments Page:<br>  - `Payment Pending`: The Hosted Payments Page can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.<br>  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.|
|payment_id|string|false|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|success_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a successful payment.|
|cancel_url|string(uri)|true|none|The provided URL your customer will be redirected to if the payment is cancelled.|
|failure_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a failed payment.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|_links|[GetHostedPaymentsResponseLinks](#schemagethostedpaymentsresponselinks)|true|none|The links related to the Hosted Payments Page.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Expired|

<h2 id="tocS_GetHostedPaymentsResponseStatusPaymentPending">GetHostedPaymentsResponseStatusPaymentPending</h2>
<!-- backwards compatibility -->
<a id="schemagethostedpaymentsresponsestatuspaymentpending"></a>
<a id="schema_GetHostedPaymentsResponseStatusPaymentPending"></a>
<a id="tocSgethostedpaymentsresponsestatuspaymentpending"></a>
<a id="tocsgethostedpaymentsresponsestatuspaymentpending"></a>

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Payment Pending",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}

```

Payment Pending

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[HostedPaymentId](#schemahostedpaymentid)|true|none|The unique identifier for a Hosted Payments Page.|
|status|string|true|none|The status of the Hosted Payments Page:<br>  - `Payment Pending`: The Hosted Payments Page can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.<br>  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.|
|payment_id|string|false|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|success_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a successful payment.|
|cancel_url|string(uri)|true|none|The provided URL your customer will be redirected to if the payment is cancelled.|
|failure_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a failed payment.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|_links|[GetHostedPaymentsResponseLinks](#schemagethostedpaymentsresponselinks)|true|none|The links related to the Hosted Payments Page.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Payment Pending|

<h2 id="tocS_GetHostedPaymentsResponseStatusPaymentReceived">GetHostedPaymentsResponseStatusPaymentReceived</h2>
<!-- backwards compatibility -->
<a id="schemagethostedpaymentsresponsestatuspaymentreceived"></a>
<a id="schema_GetHostedPaymentsResponseStatusPaymentReceived"></a>
<a id="tocSgethostedpaymentsresponsestatuspaymentreceived"></a>
<a id="tocsgethostedpaymentsresponsestatuspaymentreceived"></a>

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "status": "Payment Received",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "success_url": "https://example.com/success",
  "cancel_url": "https://example.com/cancel",
  "failure_url": "https://example.com/failure",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}

```

Payment Received

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[HostedPaymentId](#schemahostedpaymentid)|true|none|The unique identifier for a Hosted Payments Page.|
|status|string|true|none|The status of the Hosted Payments Page:<br>  - `Payment Pending`: The Hosted Payments Page can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.<br>  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.|
|payment_id|string|true|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|success_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a successful payment.|
|cancel_url|string(uri)|true|none|The provided URL your customer will be redirected to if the payment is cancelled.|
|failure_url|string(uri)|true|none|The provided URL your customer will be redirected to upon a failed payment.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|_links|[GetHostedPaymentsResponseLinks](#schemagethostedpaymentsresponselinks)|true|none|The links related to the Hosted Payments Page.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Payment Received|

<h2 id="tocS_HostedPaymentId">HostedPaymentId</h2>
<!-- backwards compatibility -->
<a id="schemahostedpaymentid"></a>
<a id="schema_HostedPaymentId"></a>
<a id="tocShostedpaymentid"></a>
<a id="tocshostedpaymentid"></a>

```json
"stringstringstri"

```

The unique identifier for a Hosted Payments Page.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The unique identifier for a Hosted Payments Page.|

<h2 id="tocS_HostedPaymentsRequest">HostedPaymentsRequest</h2>
<!-- backwards compatibility -->
<a id="schemahostedpaymentsrequest"></a>
<a id="schema_HostedPaymentsRequest"></a>
<a id="tocShostedpaymentsrequest"></a>
<a id="tocshostedpaymentsrequest"></a>

```json
{
  "amount": 1000,
  "currency": "GBP",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "payment_ip": "90.197.169.245",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "display_name": "The Jewelry Shop",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "customer": {
    "email": "ali.farid@example.com",
    "name": "Ali Farid",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "allow_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "risk": {
    "enabled": false
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "sender": {},
  "success_url": "https://example.com/payments/success",
  "cancel_url": "https://example.com/payments/cancel",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {},
  "locale": "ar",
  "3ds": {
    "enabled": false,
    "attempt_n3d": false,
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "capture": true,
  "capture_on": "2019-08-24T14:15:22Z",
  "instruction": {
    "purpose": "donations"
  },
  "payment_method_configuration": {
    "applepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    },
    "stored_card": {
      "customer_id": "string",
      "instrument_ids": [
        "string"
      ],
      "default_instrument_id": "string"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|false|none|The payment amount. The exact format <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="_blank">depends on the currency</a>|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment|
|payment_type|string|false|none|This must be specified for card payments where the cardholder is not present (i.e., recurring or mail order / telephone order)|
|authorization_type|string|false|none|The authorization type.|
|payment_plan|[PaymentSessionPaymentPlanRecurring](#schemapaymentsessionpaymentplanrecurring)|false|none|The information to process a recurring payment request. To be used when the payment_type is Recurring.|
|payment_ip|[IPAddress](#schemaipaddress)|false|none|The Customers IP address. Only IPv4 and IPv6 addresses are accepted.|
|billing_descriptor|object|false|none|An optional description that is displayed on the customer's statement identifying a purchase|
|» name|string|true|none|A dynamic description of the change|
|» city|string|true|none|The city from which the charge originated|
|» reference|string|false|none|The reference shown on the statement. Required for payouts to bank accounts.|
|reference|[PaymentInterfacesReference](#schemapaymentinterfacesreference)|false|none|A reference you can use to identify the payment. For example, an order number. <br>  - For Amex payments, this must be at most 30 characters.<br>  - For Benefit payments, the reference must be a unique alphanumeric value.<br>  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.|
|description|string|false|none|A description of the payment|
|display_name|string|false|none|The merchant name to display to customers on the checkout page.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|customer|object|false|none|The customer's details|
|» email|string(email)|false|none|The customer's email address.|
|» name|string|false|none|The customer's name.<br><br>This will only set the name for new customers.|
|» phone|[PaymentInterfacesPhoneNumber](#schemapaymentinterfacesphonenumber)|false|none|The customer's phone number.|
|» summary|[PaymentInterfacesCustomerSummary](#schemapaymentinterfacescustomersummary)|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`|
|shipping|object|false|none|The address any products are being sent to.|
|» address|[Address](#schemaaddress)|true|none|The customer's address to ship to.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|billing|object|true|none|The billing details|
|» address|[Address](#schemaaddress)|true|none|The billing address|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number. This will override the phone number specified during tokenization|
|recipient|[PaymentInterfacesRecipient](#schemapaymentinterfacesrecipient)|false|none|Information about the recipient of the payment's funds. Applies to <a href="https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction">Account Funding Transactions</a>, and VISA or Mastercard <a href="https://www.checkout.com/docs/business-operations/ensure-regulatory-compliance/requirements-for-financial-institutions">domestic UK transactions processed by financial institutions</a>.|
|processing|[PaymentInterfacesProcessing](#schemapaymentinterfacesprocessing)|false|none|Use the processing object to influence or override the data sent during card processing|
|allow_payment_methods|[PaymentInterfacesPaymentMethodEnum](#schemapaymentinterfacespaymentmethodenum)|false|none|Specifies which payment method options to present to the customer.<br><br>The values in this field override any equivalent values in `disabled_payment_methods`.<br><br>Some payment methods have additional field requirements. See the <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-a-hosted-page/manage-your-hosted-payments-page#Payment_method_field_requirements" target="_blank">documentation</a> for more information.|
|disabled_payment_methods|[PaymentInterfacesPaymentMethods](#schemapaymentinterfacespaymentmethods)|false|none|Specifies which payment method options to not present to the customer.<br><br>If you specify the same payment method in this field and in `allow_payment_methods`, the `disabled_payment_methods` value will be overridden.<br><br>Any payment method options not explicitly specified in this field will be presented to the customer by default.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|risk|object|false|none|Configures the risk assessment performed during payment processing.|
|» enabled|boolean|true|none|Specifies whether to perform a risk assessment.|
|customer_retry|object|false|none|Configures the parameters for customer retries.<br><br>A customer retry is a payment attempt performed by the customer on the checkout page. This differs from [authorization request retries](https://api-reference.checkout.com/#operation/requestAPaymentOrPayout!path=0/retry&t=request) performed in the back end by Checkout.com.|
|» max_attempts|integer|false|none|The maximum number of customer retry attempts, excluding the initial payment attempt.|
|sender|[PaymentInterfacesSender](#schemapaymentinterfacessender)|false|none|The sender of the payment.|
|success_url|string(uri)|true|none|For redirect payment methods, this overrides the default success redirect URL configured on your account|
|cancel_url|string(uri)|true|none|The URL to which the customer should be directed if they cancel the payment|
|failure_url|string(uri)|true|none|For redirect payment methods, this overrides the default failure redirect URL configured on your account|
|metadata|object|false|none|Allows you to store additional information about the transaction. This object only allows one level of depth, so cannot accept non-primitive data types such as objects or arrays.|
|locale|string|false|none|Creates a translated version of the page in the specified language|
|3ds|object|false|none|Information required for 3D Secure payments|
|» enabled|boolean|false|none|Whether to process this payment as a 3D Secure payment|
|» attempt_n3d|boolean|false|none|Applies only when `3ds.enabled` is set to `true`. Set to `true` to attempt the payment without 3DS when the issuer, card, or network doesn’t support 3DS.|
|» challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|» allow_upgrade|boolean|false|none|Whether to process this payment as 3D Secure if the authorization was soft declined because 3DS authentication is required.|
|» exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://www.checkout.com/docs/payments/regulation-support/sca-compliance-guide#Possible_SCA_exemptions" target="_blank">SCA compliance guide</a>.|
|capture|boolean|false|none|Whether to capture the payment (if applicable).|
|capture_on|[Timestamp](#schematimestamp)|false|none|A timestamp (ISO 8601 code) that determines when the payment should be captured.<br>Providing this field will automatically set `capture` to true.|
|instruction|object|false|none|Details about the payment instruction.|
|» purpose|[Purpose](#schemapurpose)|false|none|The purpose of the payment.<br>This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).<br>See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.|
|payment_method_configuration|object|false|none|Configuration options for specific payment methods.|
|» applepay|object|false|none|Configuration options specific to Apple Pay payments.|
|»» account_holder|object|false|none|The account holder's details.|
|»» store_payment_details|[PaymentInterfacesStorePaymentDetails](#schemapaymentinterfacesstorepaymentdetails)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|» card|object|false|none|Configuration options specific to card payments.|
|»» store_payment_details|string|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled` or `collect_consent`, you must:<br><br>- Have obtained consent from the cardholder to store their payment details<br>- Provide `customer.id` or `customer.email` in the request<br><br>You do not need to provide this field if `payment_type` is set to one of the following values:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|»» account_holder|object|false|none|The account holder's details.|
|» googlepay|object|false|none|Configuration options specific to Google Pay payments.|
|»» account_holder|object|false|none|The account holder's details.|
|»» store_payment_details|[PaymentInterfacesStorePaymentDetails](#schemapaymentinterfacesstorepaymentdetails)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|» stored_card|object|false|none|Configuration options specific to stored card payments.|
|»» customer_id|string|false|none|The unique identifier for an existing [customer](https://api-reference.checkout.com/#tag/Customers). Enables the stored card payment method if the associated customer has one or more payment instruments stored.<br><br>This value takes precedence over `payment_method_configuration.stored_card.instrument_ids` when determining the stored cards to present to the customer.|
|»» instrument_ids|[string]|false|none|The unique identifiers for card Instruments. Enables stored card payment method if any one of them exists.<br><br>The first valid payment instrument in the list will be presented to the customer as the default option. Alternatively, you can explicitly specify a default payment instrument by providing its ID in the `payment_method_configuration.stored_card.default_instrument_id` field.|
|»» default_instrument_id|string|false|none|The unique identifier for the payment instrument to present to the customer as the default option.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|
|authorization_type|Final|
|authorization_type|Estimated|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|exemption|low_value|
|exemption|secure_corporate_payment|
|exemption|trusted_listing|
|exemption|transaction_risk_assessment|
|exemption|3ds_outage|
|exemption|sca_delegation|
|exemption|out_of_sca_scope|
|exemption|other|
|exemption|low_risk_program|
|exemption|recurring_operation|
|store_payment_details|disabled|
|store_payment_details|enabled|
|store_payment_details|collect_consent|

<h2 id="tocS_HostedPaymentsResponse">HostedPaymentsResponse</h2>
<!-- backwards compatibility -->
<a id="schemahostedpaymentsresponse"></a>
<a id="schema_HostedPaymentsResponse"></a>
<a id="tocShostedpaymentsresponse"></a>
<a id="tocshostedpaymentsresponse"></a>

```json
{
  "id": "hpp_xGQBg0AXl3cM",
  "reference": "ORD-123A",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[HostedPaymentId](#schemahostedpaymentid)|true|none|The unique identifier for a Hosted Payments Page.|
|reference|string|false|none|A reference you can later use to identify this payment, such as an order number.|
|warnings|[object]|false|none|Related to the `allow_payment_methods` object in the request. Included in the response if an alternative payment method is passed through, but no card schemes are configured against the account.|
|» code|string|false|none|The reason for the warning|
|» description|string|false|none|The description of the warning code|
|» value|string|false|none|Payment method for which the warning applies|
|_links|object|true|read-only|The links related to the hosted payment.|
|» self|[Link](#schemalink)|false|none|none|
|» redirect|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|value|card|
|value|sofort|
|value|ideal|
|value|knet|
|value|bancontact|
|value|eps|
|value|p24|
|value|multibanco|

<h2 id="tocS_PaymentInterfacesCustomerSummary">PaymentInterfacesCustomerSummary</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacescustomersummary"></a>
<a id="schema_PaymentInterfacesCustomerSummary"></a>
<a id="tocSpaymentinterfacescustomersummary"></a>
<a id="tocspaymentinterfacescustomersummary"></a>

```json
{
  "registration_date": "2023-05-01",
  "first_transaction_date": "2023-07-01",
  "last_payment_date": "2023-08-01",
  "total_order_count": 15,
  "last_payment_amount": 500,
  "is_premium_customer": true,
  "is_returning_customer": true,
  "lifetime_value": 500
}

```

Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|registration_date|string(date)|false|none|The date the customer registered.|
|first_transaction_date|string(date)|false|none|The date of the customer's first transaction.|
|last_payment_date|string(date)|false|none|The date of the customer's last payment.|
|total_order_count|integer|false|none|The total number of orders made by the customer.|
|last_payment_amount|number(float)|false|none|The amount of the customer's last payment.|
|is_premium_customer|boolean|false|none|Specifies whether the customer is a premium customer.|
|is_returning_customer|boolean|false|none|Specifies whether the customer is a returning customer.|
|lifetime_value|number(float)|false|none|The customer's lifetime value. This is the total monetary amount that the customer has ordered, in their local currency, excluding the following:<br><br>- canceled orders<br>- rejected payments<br>- refunded payments<br>- Tamara payments<br><br>The lifetime value is an indicator of how valuable the relationship with the customer is to your company.|

<h2 id="tocS_PaymentInterfacesPanPreference">PaymentInterfacesPanPreference</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacespanpreference"></a>
<a id="schema_PaymentInterfacesPanPreference"></a>
<a id="tocSpaymentinterfacespanpreference"></a>
<a id="tocspaymentinterfacespanpreference"></a>

```json
"fpan"

```

Specifies the preferred type of Primary Account Number (PAN) for the payment:

* DPAN: Uses the Checkout.com Network Token.
* FPAN: Uses the full card number.

**Note**: This only works when `source.type` is any of:
  - `cards`
  - `instruments`
  - `tokens`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Specifies the preferred type of Primary Account Number (PAN) for the payment:<br><br>* DPAN: Uses the Checkout.com Network Token.<br>* FPAN: Uses the full card number.<br><br>**Note**: This only works when `source.type` is any of:<br>  - `cards`<br>  - `instruments`<br>  - `tokens`|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|fpan|
|*anonymous*|dpan|

<h2 id="tocS_PaymentInterfacesPaymentMethod">PaymentInterfacesPaymentMethod</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacespaymentmethod"></a>
<a id="schema_PaymentInterfacesPaymentMethod"></a>
<a id="tocSpaymentinterfacespaymentmethod"></a>
<a id="tocspaymentinterfacespaymentmethod"></a>

```json
"alipay_cn"

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentInterfacesPaymentMethodEnum](#schemapaymentinterfacespaymentmethodenum)|false|none|none|

<h2 id="tocS_PaymentInterfacesPaymentMethodEnum">PaymentInterfacesPaymentMethodEnum</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacespaymentmethodenum"></a>
<a id="schema_PaymentInterfacesPaymentMethodEnum"></a>
<a id="tocSpaymentinterfacespaymentmethodenum"></a>
<a id="tocspaymentinterfacespaymentmethodenum"></a>

```json
"alipay_cn"

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|alipay_cn|
|*anonymous*|alipay_hk|
|*anonymous*|alma|
|*anonymous*|applepay|
|*anonymous*|bancontact|
|*anonymous*|benefit|
|*anonymous*|bizum|
|*anonymous*|card|
|*anonymous*|dana|
|*anonymous*|eps|
|*anonymous*|gcash|
|*anonymous*|googlepay|
|*anonymous*|ideal|
|*anonymous*|kakaopay|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|mbway|
|*anonymous*|mobilepay|
|*anonymous*|multibanco|
|*anonymous*|octopus|
|*anonymous*|p24|
|*anonymous*|paynow|
|*anonymous*|paypal|
|*anonymous*|plaid|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|stcpay|
|*anonymous*|stored_card|
|*anonymous*|tabby|
|*anonymous*|tamara|
|*anonymous*|tng|
|*anonymous*|truemoney|
|*anonymous*|twint|
|*anonymous*|vipps|
|*anonymous*|wechatpay|

<h2 id="tocS_PaymentInterfacesPaymentMethods">PaymentInterfacesPaymentMethods</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacespaymentmethods"></a>
<a id="schema_PaymentInterfacesPaymentMethods"></a>
<a id="tocSpaymentinterfacespaymentmethods"></a>
<a id="tocspaymentinterfacespaymentmethods"></a>

```json
[
  "alipay_cn"
]

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[PaymentInterfacesPaymentMethodEnum](#schemapaymentinterfacespaymentmethodenum)]|false|none|none|

<h2 id="tocS_PaymentInterfacesPhoneNumber">PaymentInterfacesPhoneNumber</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesphonenumber"></a>
<a id="schema_PaymentInterfacesPhoneNumber"></a>
<a id="tocSpaymentinterfacesphonenumber"></a>
<a id="tocspaymentinterfacesphonenumber"></a>

```json
{
  "country_code": "+1",
  "number": "415 555 2671"
}

```

A phone number

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|false|none|The international <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">country calling code</a>.|
|number|string|false|none|The phone number.|

<h2 id="tocS_PaymentInterfacesProcessing">PaymentInterfacesProcessing</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprocessing"></a>
<a id="schema_PaymentInterfacesProcessing"></a>
<a id="tocSpaymentinterfacesprocessing"></a>
<a id="tocspaymentinterfacesprocessing"></a>

```json
{
  "aft": true,
  "discount_amount": 0,
  "shipping_amount": 300,
  "tax_amount": 3000,
  "invoice_id": "string",
  "brand_name": "string",
  "locale": "en-US",
  "partner_customer_risk_data": {
    "key": "string",
    "value": "string"
  },
  "custom_payment_method_ids": [
    "string"
  ],
  "airline_data": [
    {
      "ticket": {
        "number": "045-21351455613",
        "issue_date": "2023-05-20",
        "issuing_carrier_code": "AI",
        "travel_package_indicator": "B",
        "travel_agency_name": "World Tours",
        "travel_agency_code": "01"
      },
      "passenger": [
        {
          "first_name": "John",
          "last_name": "White",
          "date_of_birth": "1990-05-26",
          "address": {
            "country": "US"
          }
        }
      ],
      "flight_leg_details": [
        {
          "flight_number": "101",
          "carrier_code": "BA",
          "class_of_travelling": "J",
          "departure_airport": "LHR",
          "departure_date": "2023-06-19",
          "departure_time": "15:30",
          "arrival_airport": "LAX",
          "stop_over_code": "x",
          "fare_basis_code": "SPRSVR"
        }
      ]
    }
  ],
  "accommodation_data": [
    {
      "name": "The Sea View Hotel",
      "booking_reference": "HOTEL123",
      "check_in_date": "2023-06-20",
      "check_out_date": "2023-06-23",
      "address": {
        "address_line1": "123 Beach Road",
        "zip": "10001"
      },
      "state": "FL",
      "country": "USA",
      "city": "Los Angeles",
      "number_of_rooms": 2,
      "guests": [
        {
          "first_name": "Jane",
          "last_name": "Doe",
          "date_of_birth": "1985-07-14"
        }
      ],
      "room": [
        {
          "rate": "70",
          "number_of_nights_at_room_rate": "3"
        }
      ]
    }
  ],
  "order_id": "123456789",
  "surcharge_amount": 200,
  "duty_amount": 0,
  "shipping_tax_amount": 100,
  "affiliate_id": "string",
  "affiliate_url": "www.mycrypto.com",
  "purchase_country": "string",
  "merchant_initiated_reason": "Delayed_charge",
  "campaign_id": 0,
  "original_order_amount": 10,
  "receipt_id": "10",
  "merchant_callback_url": "string",
  "line_of_business": "Flights",
  "pan_preference": "fpan",
  "provision_network_token": true,
  "reconciliation_id": "4123495123",
  "aggregator": {
    "sub_merchant_id": "9cf70789ba90123",
    "aggregator_id_visa": "10012345",
    "aggregator_id_mc": "00000123456"
  }
}

```

Use the processing object to influence or override the data sent during card processing

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|aft|boolean|false|none|Indicates whether the payment is an [Account Funding Transaction](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions)|
|discount_amount|number|false|none|The discount amount applied to the transaction by the merchant.|
|shipping_amount|number|false|none|The total freight or shipping and handling charges for the transaction.|
|tax_amount|number|false|none|The customer's value-added tax registration number.|
|invoice_id|string|false|none|Invoice ID number.|
|brand_name|string|false|none|The label that overrides the business name in the PayPal account on the PayPal pages.|
|locale|string|false|none|The language and region of the customer in ISO 639-2 language code; value consists of language-country.|
|partner_customer_risk_data|object|false|none|An array of key-and-value pairs with merchant-specific data for the transaction.|
|» key|string|false|none|The key for the pair.|
|» value|string|false|none|The value for the pair.|
|custom_payment_method_ids|[string]|false|none|Promo codes - An array that can be used to define which of the configured payment options within a payment category (pay_later, pay_over_time, etc.) should be shown for this purchase.|
|airline_data|[PaymentInterfacesProcessingAirlineData](#schemapaymentinterfacesprocessingairlinedata)|false|none|Contains information about the airline ticket and flights booked by the customer.|
|accommodation_data|[PaymentInterfacesProcessingAccommodationData](#schemapaymentinterfacesprocessingaccommodationdata)|false|none|Contains information about the accommodation booked by the customer.|
|order_id|string|false|none|The number provided by the cardholder. Purchase order or invoice number may be used.|
|surcharge_amount|integer(int64)|false|none|Surcharge amount applied to the transaction in minor units by the merchant.|
|duty_amount|number|false|none|The total charges for any import/export duty included in the transaction.|
|shipping_tax_amount|number|false|none|The tax amount of the freight or shipping and handling charges for the transaction.|
|affiliate_id|string|false|none|The unique identifier for Visa-registered ramp providers. <br><br>Must only contain alphanumeric characters.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|affiliate_url|string|false|none|The affiliate URL.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|purchase_country|string|false|none|The purchase country of the customer. ISO 3166 alpha-2 purchase country.|
|merchant_initiated_reason|string|false|none|Indicates the reason for a merchant-initiated payment request.|
|campaign_id|integer|false|none|Unique number of the campaign this payment will be running in. Only required for Afterpay campaign invoices.|
|original_order_amount|number|false|none|The payment for a merchant's order may be split, and the original order price indicates the transaction amount of the entire order.|
|receipt_id|string|false|none|Merchant receipt ID.|
|merchant_callback_url|string|false|none|A URL which you can use to notify the customer that the order has been created.|
|line_of_business|string|false|none|<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p><br>The line of business that the payment is associated with.|
|pan_preference|[PaymentInterfacesPanPreference](#schemapaymentinterfacespanpreference)|false|none|Specifies the preferred type of Primary Account Number (PAN) for the payment:<br><br>* DPAN: Uses the Checkout.com Network Token.<br>* FPAN: Uses the full card number.<br><br>**Note**: This only works when `source.type` is any of:<br>  - `cards`<br>  - `instruments`<br>  - `tokens`|
|provision_network_token|[PaymentInterfacesProvisionNetworkToken](#schemapaymentinterfacesprovisionnetworktoken)|false|none|Indicates whether to provision a network token for the payment.|
|reconciliation_id|string|false|none|Transaction identifier used to track a payment request|
|aggregator|[PaymentInterfacesProcessingAggregator](#schemapaymentinterfacesprocessingaggregator)|false|none|Contains information about the payment aggregator.|

#### Enumerated Values

|Property|Value|
|---|---|
|merchant_initiated_reason|Delayed_charge|
|merchant_initiated_reason|Resubmission|
|merchant_initiated_reason|No_show|
|merchant_initiated_reason|Reauthorization|

<h2 id="tocS_PaymentInterfacesProcessingAccommodationData">PaymentInterfacesProcessingAccommodationData</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprocessingaccommodationdata"></a>
<a id="schema_PaymentInterfacesProcessingAccommodationData"></a>
<a id="tocSpaymentinterfacesprocessingaccommodationdata"></a>
<a id="tocspaymentinterfacesprocessingaccommodationdata"></a>

```json
[
  {
    "name": "The Sea View Hotel",
    "booking_reference": "HOTEL123",
    "check_in_date": "2023-06-20",
    "check_out_date": "2023-06-23",
    "address": {
      "address_line1": "123 Beach Road",
      "zip": "10001"
    },
    "state": "FL",
    "country": "USA",
    "city": "Los Angeles",
    "number_of_rooms": 2,
    "guests": [
      {
        "first_name": "Jane",
        "last_name": "Doe",
        "date_of_birth": "1985-07-14"
      }
    ],
    "room": [
      {
        "rate": "70",
        "number_of_nights_at_room_rate": "3"
      }
    ]
  }
]

```

Contains information about the accommodation booked by the customer.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Accommodation Data|object|false|none|none|
|» name|string|false|none|For lodging, contains the lodging name that appears on the storefront/customer receipts. For cruise, contains the ship name booked for the cruise.|
|» booking_reference|string|false|none|A unique identifier for the booking.|
|» check_in_date|string(date)|false|none|For lodging, contains the actual or scheduled date the guest checked-in. For cruise, contains the cruise departure date also known as sail date.|
|» check_out_date|string(date)|false|none|For lodging, contains the actual or scheduled date the guest checked-out. For cruise, contains the cruise return date also known as sail end date.|
|» address|object|false|none|The address details of the accommodation.|
|»» address_line1|string|false|none|The first line of the address.|
|»» zip|string|false|none|The postal code for the address.|
|» state|string|false|none|The state or province of the address country (ISO 3166-2 code of up to two alphanumeric characters).|
|» country|string|false|none|The ISO country code of the address.|
|» city|string|false|none|The address city.|
|» number_of_rooms|integer|false|none|The total number of rooms booked for the accommodation.|
|» guests|[object]|false|none|Contains information about the guests staying at the accommodation.|
|»» first_name|string|false|none|The first name of the guest.|
|»» last_name|string|false|none|The last name of the guest.|
|»» date_of_birth|string(date)|false|none|The date of birth of the guest.|
|» room|[object]|false|none|Contains information about the rooms booked by the customer.|
|»» rate|string|false|none|For lodging, contains the nightly rate for one room. For cruise, contains the total cost of the cruise.|
|»» number_of_nights_at_room_rate|string|false|none|For lodging, contains the number of nights charged at the rate provided in the rate field. For cruise, contains the length of the cruise in days.|

<h2 id="tocS_PaymentInterfacesProcessingAggregator">PaymentInterfacesProcessingAggregator</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprocessingaggregator"></a>
<a id="schema_PaymentInterfacesProcessingAggregator"></a>
<a id="tocSpaymentinterfacesprocessingaggregator"></a>
<a id="tocspaymentinterfacesprocessingaggregator"></a>

```json
{
  "sub_merchant_id": "9cf70789ba90123",
  "aggregator_id_visa": "10012345",
  "aggregator_id_mc": "00000123456"
}

```

Aggregator

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|sub_merchant_id|string|false|none|ID that you assigned to the sub-entity.|
|aggregator_id_visa|string|false|none|Visa identifier of the payment aggregator.|
|aggregator_id_mc|string|false|none|Mastercard identifier of the payment aggregator.|

<h2 id="tocS_PaymentInterfacesProcessingAirlineData">PaymentInterfacesProcessingAirlineData</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprocessingairlinedata"></a>
<a id="schema_PaymentInterfacesProcessingAirlineData"></a>
<a id="tocSpaymentinterfacesprocessingairlinedata"></a>
<a id="tocspaymentinterfacesprocessingairlinedata"></a>

```json
[
  {
    "ticket": {
      "number": "045-21351455613",
      "issue_date": "2023-05-20",
      "issuing_carrier_code": "AI",
      "travel_package_indicator": "B",
      "travel_agency_name": "World Tours",
      "travel_agency_code": "01"
    },
    "passenger": [
      {
        "first_name": "John",
        "last_name": "White",
        "date_of_birth": "1990-05-26",
        "address": {
          "country": "US"
        }
      }
    ],
    "flight_leg_details": [
      {
        "flight_number": "101",
        "carrier_code": "BA",
        "class_of_travelling": "J",
        "departure_airport": "LHR",
        "departure_date": "2023-06-19",
        "departure_time": "15:30",
        "arrival_airport": "LAX",
        "stop_over_code": "x",
        "fare_basis_code": "SPRSVR"
      }
    ]
  }
]

```

Contains information about the airline ticket and flights booked by the customer.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Airline Data|object|false|none|none|
|» ticket|object|false|none|Contains information about the airline ticket.|
|»» number|string|false|none|The ticket's unique identifier.|
|»» issue_date|string(date)|false|none|Date the airline ticket was issued.|
|»» issuing_carrier_code|string|false|none|Carrier code of the ticket issuer.|
|»» travel_package_indicator|string|false|none|C = Car rental reservation, A = Airline flight reservation, B = Both car rental and airline flight reservations included, N = Unknown.|
|»» travel_agency_name|string|false|none|The name of the travel agency.|
|»» travel_agency_code|string|false|none|The unique identifier from IATA or ARC for the travel agency that issues the ticket.|
|» passenger|any|false|none|Contains information about the passenger(s) on the flight. PayPal requires a single object.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[[PaymentInterfacesProcessingAirlinePassengerData](#schemapaymentinterfacesprocessingairlinepassengerdata)]|false|none|Array of passengers on the flight.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[PaymentInterfacesProcessingAirlinePassengerData](#schemapaymentinterfacesprocessingairlinepassengerdata)|false|none|Contains information about a passenger on the flight.|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» flight_leg_details|[object]|false|none|Contains information about the flight leg(s) booked by the customer.|
|»» flight_number|string|false|none|The flight identifier.|
|»» carrier_code|string|false|none|The IATA 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details.|
|»» class_of_travelling|string|false|none|A one-letter travel class identifier. The following are common: F = First class, J = Business class, Y = Economy class, W = Premium economy.|
|»» departure_airport|string|false|none|The IATA three-letter airport code of the departure airport. This field is required if the airline data includes leg details.|
|»» departure_date|string(date)|false|none|The date of the scheduled take off.|
|»» departure_time|string|false|none|The time of the scheduled take off.|
|»» arrival_airport|string|false|none|The IATA 3-letter airport code of the destination airport. This field is required if the airline data includes leg details.|
|»» stop_over_code|string|false|none|A one-letter code that indicates whether the passenger is entitled to make a stopover. Can be a space, O if the passenger is entitled to make a stopover, or X if they are not.|
|»» fare_basis_code|string|false|none|The fare basis code, alphanumeric.|

<h2 id="tocS_PaymentInterfacesProcessingAirlinePassengerData">PaymentInterfacesProcessingAirlinePassengerData</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprocessingairlinepassengerdata"></a>
<a id="schema_PaymentInterfacesProcessingAirlinePassengerData"></a>
<a id="tocSpaymentinterfacesprocessingairlinepassengerdata"></a>
<a id="tocspaymentinterfacesprocessingairlinepassengerdata"></a>

```json
{
  "first_name": "John",
  "last_name": "White",
  "date_of_birth": "1990-05-26",
  "address": {
    "country": "US"
  }
}

```

Single-Object Passenger Data

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The passenger's first name.|
|last_name|string|false|none|The passenger's last name.|
|date_of_birth|string(date)|false|none|The passenger's date of birth.|
|address|object|false|none|Contains information about the passenger's address.|
|» country|string|false|none|The two-letter ISO country code of the passenger's country residence.|

<h2 id="tocS_PaymentInterfacesProcessingBase">PaymentInterfacesProcessingBase</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprocessingbase"></a>
<a id="schema_PaymentInterfacesProcessingBase"></a>
<a id="tocSpaymentinterfacesprocessingbase"></a>
<a id="tocspaymentinterfacesprocessingbase"></a>

```json
{
  "pan_preference": "fpan",
  "provision_network_token": true
}

```

Use the processing object to influence or override the data sent during card processing

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|pan_preference|[PaymentInterfacesPanPreference](#schemapaymentinterfacespanpreference)|false|none|Specifies the preferred type of Primary Account Number (PAN) for the payment:<br><br>* DPAN: Uses the Checkout.com Network Token.<br>* FPAN: Uses the full card number.<br><br>**Note**: This only works when `source.type` is any of:<br>  - `cards`<br>  - `instruments`<br>  - `tokens`|
|provision_network_token|[PaymentInterfacesProvisionNetworkToken](#schemapaymentinterfacesprovisionnetworktoken)|false|none|Indicates whether to provision a network token for the payment.|

<h2 id="tocS_PaymentInterfacesProducts">PaymentInterfacesProducts</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesproducts"></a>
<a id="schema_PaymentInterfacesProducts"></a>
<a id="tocSpaymentinterfacesproducts"></a>
<a id="tocspaymentinterfacesproducts"></a>

```json
[
  {
    "reference": "string",
    "url": "https://example.com/products/gold-necklace",
    "name": "Gold Necklace",
    "quantity": 1,
    "price": 1000
  }
]

```

Contains details about the products in the order.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|false|none|The item reference or product stock keeping unit (SKU).|
|url|string|false|none|Link to the line item's product page.|
|name|string|true|none|The descriptive name of the line item.|
|quantity|integer|true|none|The number of line items.|
|price|integer|true|none|The price per item in minor units, including tax but excluding discounts. The exact format depends on the currency. See  <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="_blank">Calculating the amount</a>.|

<h2 id="tocS_PaymentInterfacesProvisionNetworkToken">PaymentInterfacesProvisionNetworkToken</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesprovisionnetworktoken"></a>
<a id="schema_PaymentInterfacesProvisionNetworkToken"></a>
<a id="tocSpaymentinterfacesprovisionnetworktoken"></a>
<a id="tocspaymentinterfacesprovisionnetworktoken"></a>

```json
true

```

Indicates whether to provision a network token for the payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|boolean|false|none|Indicates whether to provision a network token for the payment.|

<h2 id="tocS_PaymentInterfacesRecipient">PaymentInterfacesRecipient</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesrecipient"></a>
<a id="schema_PaymentInterfacesRecipient"></a>
<a id="tocSpaymentinterfacesrecipient"></a>
<a id="tocspaymentinterfacesrecipient"></a>

```json
{
  "dob": "1985-05-15",
  "account_number": "5555554444",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "first_name": "Jia",
  "last_name": "Tsang"
}

```

Information about the recipient of the payment's funds. Applies to <a href="https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction">Account Funding Transactions</a>, and VISA or Mastercard <a href="https://www.checkout.com/docs/business-operations/ensure-regulatory-compliance/requirements-for-financial-institutions">domestic UK transactions processed by financial institutions</a>.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|dob|string(date)|false|none|The recipient's date of birth, in the format `YYYY-MM-DD`.|
|account_number|string|false|none|An identifier related to the primary recipient's account. For example, an IBAN, an internal account number, a phone number, or the first six and last four digits of the PAN.|
|address|[Address](#schemaaddress)|false|none|The recipient's address.|
|first_name|string|false|none|The recipient's first name.|
|last_name|string|false|none|The recipient's last name.|

<h2 id="tocS_PaymentInterfacesReference">PaymentInterfacesReference</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesreference"></a>
<a id="schema_PaymentInterfacesReference"></a>
<a id="tocSpaymentinterfacesreference"></a>
<a id="tocspaymentinterfacesreference"></a>

```json
"ORD-123A"

```

A reference you can use to identify the payment. For example, an order number. 
  - For Amex payments, this must be at most 30 characters.
  - For Benefit payments, the reference must be a unique alphanumeric value.
  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|A reference you can use to identify the payment. For example, an order number. <br>  - For Amex payments, this must be at most 30 characters.<br>  - For Benefit payments, the reference must be a unique alphanumeric value.<br>  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.|

<h2 id="tocS_PaymentInterfacesSender">PaymentInterfacesSender</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacessender"></a>
<a id="schema_PaymentInterfacesSender"></a>
<a id="tocSpaymentinterfacessender"></a>
<a id="tocspaymentinterfacessender"></a>

```json
{}

```

The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.

### Properties

*None*

<h2 id="tocS_01_PaymentInterfacesIndividualSender">01_PaymentInterfacesIndividualSender</h2>
<!-- backwards compatibility -->
<a id="schema01_paymentinterfacesindividualsender"></a>
<a id="schema_01_PaymentInterfacesIndividualSender"></a>
<a id="tocS01_paymentinterfacesindividualsender"></a>
<a id="tocs01_paymentinterfacesindividualsender"></a>

```json
{
  "type": "individual",
  "reference": "8285282045818",
  "first_name": "John",
  "last_name": "Jones",
  "dob": "1985-05-15",
  "date_of_birth": "1985-05-15",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "identification": {
    "type": "driving_licence",
    "number": "1234",
    "issuing_country": "GT"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|
|first_name|string|true|none|The sender's first name|
|last_name|string|true|none|The sender's last name|
|dob|string(date)|false|none|This field is deprecated. Use `date_of_birth` instead.<br><br>The sender's date of birth, in the format `yyyy-mm-dd`.|
|date_of_birth|string(date)|false|none|The sender's date of birth, in the format `yyyy-mm-dd`.|
|address|[Address](#schemaaddress)|false|none|The sender's address|
|identification|object|false|none|none|
|» type|string|false|none|The type of identification used to identify the sender|
|» number|string|false|none|The identification number|
|» issuing_country|string|false|none|The two-letter ISO country code of the country that issued the identification|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|passport|
|type|driving_licence|
|type|national_id|

<h2 id="tocS_02_PaymentInterfacesCorporateSender">02_PaymentInterfacesCorporateSender</h2>
<!-- backwards compatibility -->
<a id="schema02_paymentinterfacescorporatesender"></a>
<a id="schema_02_PaymentInterfacesCorporateSender"></a>
<a id="tocS02_paymentinterfacescorporatesender"></a>
<a id="tocs02_paymentinterfacescorporatesender"></a>

```json
{
  "type": "corporate",
  "reference": "8285282045818",
  "company_name": "string",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|
|company_name|string|true|none|The corporate sender's company name.|
|address|[Address](#schemaaddress)|false|none|The sender's registered corporate address.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|corporate|

<h2 id="tocS_03_PaymentInterfacesInstrumentSender">03_PaymentInterfacesInstrumentSender</h2>
<!-- backwards compatibility -->
<a id="schema03_paymentinterfacesinstrumentsender"></a>
<a id="schema_03_PaymentInterfacesInstrumentSender"></a>
<a id="tocS03_paymentinterfacesinstrumentsender"></a>
<a id="tocs03_paymentinterfacesinstrumentsender"></a>

```json
{
  "type": "instrument",
  "reference": "8285282045818"
}

```

instrument

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|

#### Enumerated Values

|Property|Value|
|---|---|
|type|instrument|

<h2 id="tocS_IddvAttemptAsset">IddvAttemptAsset</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptasset"></a>
<a id="schema_IddvAttemptAsset"></a>
<a id="tocSiddvattemptasset"></a>
<a id="tocsiddvattemptasset"></a>

```json
{
  "type": "document_front_image",
  "_links": {
    "asset_url": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of asset.|
|_links|object|true|none|none|
|» asset_url|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|document_front_image|
|type|document_back_image|

<h2 id="tocS_IddvAttemptAssets">IddvAttemptAssets</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptassets"></a>
<a id="schema_IddvAttemptAssets"></a>
<a id="tocSiddvattemptassets"></a>
<a id="tocsiddvattemptassets"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "type": "document_front_image",
      "_links": {
        "asset_url": {
          "href": "http://example.com"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of assets.|
|skip|integer|true|none|The number of assets you want to skip. <br/>Example – There are 10 assets. If you provide `6`, the first six assets are skipped.|
|limit|integer|true|none|The maximum number of assets you want returned. <br/>Example – There are 10 assets. If you set `limit` to `5`, but skip the first six, four assets are returned.|
|data|[[IddvAttemptAsset](#schemaiddvattemptasset)]|true|none|The list of assets for the current page.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_IddvAttemptId">IddvAttemptId</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptid"></a>
<a id="schema_IddvAttemptId"></a>
<a id="tocSiddvattemptid"></a>
<a id="tocsiddvattemptid"></a>

```json
"datp_tkoi5db4hryu5cei5vwoabraio"

```

The unique identifier for the ID document verification attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The unique identifier for the ID document verification attempt.|

<h2 id="tocS_IddvAttemptRequest">IddvAttemptRequest</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptrequest"></a>
<a id="schema_IddvAttemptRequest"></a>
<a id="tocSiddvattemptrequest"></a>
<a id="tocsiddvattemptrequest"></a>

```json
{
  "document_front": "string",
  "document_back": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|document_front|string(binary)|true|none|The image of the front of the document to upload.|
|document_back|string(binary)|false|none|The image of the back of the document to upload.|

<h2 id="tocS_IddvAttemptResponse">IddvAttemptResponse</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptresponse"></a>
<a id="schema_IddvAttemptResponse"></a>
<a id="tocSiddvattemptresponse"></a>
<a id="tocsiddvattemptresponse"></a>

```json
{
  "id": "datp_tkoi5db4hryu5cei5vwoabraio",
  "status": "checks_in_progress",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  },
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IddvAttemptId](#schemaiddvattemptid)|true|none|The unique identifier for the ID document verification attempt.|
|status|[IddvAttemptStates](#schemaiddvattemptstates)|true|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt.|
|response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|_links|[IdvSelfLink](#schemaidvselflink)|true|none|The details of links related to the resource.|

<h2 id="tocS_IddvAttemptResponseList">IddvAttemptResponseList</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptresponselist"></a>
<a id="schema_IddvAttemptResponseList"></a>
<a id="tocSiddvattemptresponselist"></a>
<a id="tocsiddvattemptresponselist"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "id": "datp_tkoi5db4hryu5cei5vwoabraio",
      "status": "checks_in_progress",
      "response_codes": [
        {
          "code": 10000,
          "summary": "document_front_not_captured"
        }
      ],
      "_links": {
        "self": {
          "href": "http://example.com"
        }
      },
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of attempts.|
|skip|integer|true|none|The number of attempts you want to skip, to help you view the relevant attempt. <br/>Example – There are 10 attempts. If you provide `6`, the first six attempts are skipped.|
|limit|integer|true|none|The maximum number of attempts you want returned. <br/>Example – There are 10 attempts. If you set `limit` to `5`, but skip the first six, four attempts are returned.|
|data|[[IddvAttemptResponse](#schemaiddvattemptresponse)]|true|none|The details of the attempt.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_IddvAttemptStates">IddvAttemptStates</h2>
<!-- backwards compatibility -->
<a id="schemaiddvattemptstates"></a>
<a id="schema_IddvAttemptStates"></a>
<a id="tocSiddvattemptstates"></a>
<a id="tocsiddvattemptstates"></a>

```json
"checks_in_progress"

```

The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|checks_in_progress|
|*anonymous*|checks_inconclusive|
|*anonymous*|completed|
|*anonymous*|quality_checks_aborted|
|*anonymous*|quality_checks_in_progress|
|*anonymous*|terminated|

<h2 id="tocS_IddvIdDocumentVerification">IddvIdDocumentVerification</h2>
<!-- backwards compatibility -->
<a id="schemaiddviddocumentverification"></a>
<a id="schema_IddvIdDocumentVerification"></a>
<a id="tocSiddviddocumentverification"></a>
<a id="tocsiddviddocumentverification"></a>

```json
{
  "id": "iddv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|read-only|The ID document verification's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IddvIdDocumentVerificationBase](#schemaiddviddocumentverificationbase)|false|none|none|

<h2 id="tocS_IddvIdDocumentVerificationBase">IddvIdDocumentVerificationBase</h2>
<!-- backwards compatibility -->
<a id="schemaiddviddocumentverificationbase"></a>
<a id="schema_IddvIdDocumentVerificationBase"></a>
<a id="tocSiddviddocumentverificationbase"></a>
<a id="tocsiddviddocumentverificationbase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|true|none|Your configuration ID.|
|declared_data|[IdvDeclaredData](#schemaidvdeclareddata)|false|none|The personal details provided by the applicant.|

<h2 id="tocS_IddvIdDocumentVerificationCreateBase">IddvIdDocumentVerificationCreateBase</h2>
<!-- backwards compatibility -->
<a id="schemaiddviddocumentverificationcreatebase"></a>
<a id="schema_IddvIdDocumentVerificationCreateBase"></a>
<a id="tocSiddviddocumentverificationcreatebase"></a>
<a id="tocsiddviddocumentverificationcreatebase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "created",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  },
  "document": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M",
    "personal_number": "string",
    "tax_identification_number": "string",
    "document_type": "Driving licence",
    "document_issuing_country": "US",
    "document_number": "string",
    "document_expiry_date": "2019-08-24",
    "document_issue_date": "2019-08-24",
    "document_issue_place": "string",
    "document_mrz": "string",
    "address": "123 Main Street, London, SW1A 1AA",
    "permit_obtaining_date": "2019-08-24",
    "permit_expiry_date": "2019-08-24",
    "permit_type_detailed": "string",
    "permit_type_remarks": "string",
    "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
    "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
    "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|false|none|Your configuration ID.|
|status|[IddvVerificationStatuses](#schemaiddvverificationstatuses)|true|none|The ID document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|
|declared_data|[IdvDeclaredData](#schemaidvdeclareddata)|false|none|The personal details provided by the applicant.|
|document|[IdvDocument](#schemaidvdocument)|false|none|The applicant's identity document details.|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|none|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|_links|[IdvIdentityVerificationLinks](#schemaidvidentityverificationlinks)|true|none|The details of links related to the resource.|

<h2 id="tocS_IddvIdDocumentVerificationId">IddvIdDocumentVerificationId</h2>
<!-- backwards compatibility -->
<a id="schemaiddviddocumentverificationid"></a>
<a id="schema_IddvIdDocumentVerificationId"></a>
<a id="tocSiddviddocumentverificationid"></a>
<a id="tocsiddviddocumentverificationid"></a>

```json
"iddv_tkoi5db4hryu5cei5vwoabr7we"

```

The ID document verification's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The ID document verification's unique identifier.|

<h2 id="tocS_IddvIdDocumentVerificationOutput">IddvIdDocumentVerificationOutput</h2>
<!-- backwards compatibility -->
<a id="schemaiddviddocumentverificationoutput"></a>
<a id="schema_IddvIdDocumentVerificationOutput"></a>
<a id="tocSiddviddocumentverificationoutput"></a>
<a id="tocsiddviddocumentverificationoutput"></a>

```json
{
  "id": "iddv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "created",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15"
  },
  "document": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M",
    "personal_number": "string",
    "tax_identification_number": "string",
    "document_type": "Driving licence",
    "document_issuing_country": "US",
    "document_number": "string",
    "document_expiry_date": "2019-08-24",
    "document_issue_date": "2019-08-24",
    "document_issue_place": "string",
    "document_mrz": "string",
    "address": "123 Main Street, London, SW1A 1AA",
    "permit_obtaining_date": "2019-08-24",
    "permit_expiry_date": "2019-08-24",
    "permit_type_detailed": "string",
    "permit_type_remarks": "string",
    "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
    "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
    "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IddvIdDocumentVerificationId](#schemaiddviddocumentverificationid)|true|none|The ID document verification's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IddvIdDocumentVerificationCreateBase](#schemaiddviddocumentverificationcreatebase)|false|none|none|

<h2 id="tocS_IddvVerificationStatuses">IddvVerificationStatuses</h2>
<!-- backwards compatibility -->
<a id="schemaiddvverificationstatuses"></a>
<a id="schema_IddvVerificationStatuses"></a>
<a id="tocSiddvverificationstatuses"></a>
<a id="tocsiddvverificationstatuses"></a>

```json
"created"

```

The ID document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The ID document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|created|
|*anonymous*|quality_checks_in_progress|
|*anonymous*|checks_in_progress|
|*anonymous*|approved|
|*anonymous*|declined|
|*anonymous*|retry_required|
|*anonymous*|inconclusive|

<h2 id="tocS_IdvActiveLink">IdvActiveLink</h2>
<!-- backwards compatibility -->
<a id="schemaidvactivelink"></a>
<a id="schema_IdvActiveLink"></a>
<a id="tocSidvactivelink"></a>
<a id="tocsidvactivelink"></a>

```json
{
  "verification_url": {
    "href": "http://example.com"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|verification_url|[IdvHalLink](#schemaidvhallink)|true|none|The attempt URL.|

<h2 id="tocS_IdvAddress">IdvAddress</h2>
<!-- backwards compatibility -->
<a id="schemaidvaddress"></a>
<a id="schema_IdvAddress"></a>
<a id="tocSidvaddress"></a>
<a id="tocsidvaddress"></a>

```json
{
  "address_line1": "123 Main Street",
  "address_line2": "Apt 4B",
  "city": "London",
  "state": "Greater London",
  "zip": "SW1A 1AA",
  "country": "GB"
}

```

The applicant's address.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address_line1|string|false|none|The first line of the address.|
|address_line2|string|false|none|The second line of the address.|
|city|string|false|none|The city or town.|
|state|string|false|none|The state, county, or province.|
|zip|string|false|none|The postal or ZIP code.|
|country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/developer-resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|

<h2 id="tocS_IdvApplicant">IdvApplicant</h2>
<!-- backwards compatibility -->
<a id="schemaidvapplicant"></a>
<a id="schema_IdvApplicant"></a>
<a id="tocSidvapplicant"></a>
<a id="tocsidvapplicant"></a>

```json
{
  "id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret",
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[ApplicantId](#schemaapplicantid)|true|read-only|The applicant's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvBaseApplicant](#schemaidvbaseapplicant)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvApplicantLinks](#schemaidvapplicantlinks)|false|none|none|

<h2 id="tocS_IdvApplicantLink">IdvApplicantLink</h2>
<!-- backwards compatibility -->
<a id="schemaidvapplicantlink"></a>
<a id="schema_IdvApplicantLink"></a>
<a id="tocSidvapplicantlink"></a>
<a id="tocsidvapplicantlink"></a>

```json
{
  "applicant": {
    "href": "http://example.com"
  }
}

```

The URL to the applicant's profile.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

<h2 id="tocS_IdvApplicantLinks">IdvApplicantLinks</h2>
<!-- backwards compatibility -->
<a id="schemaidvapplicantlinks"></a>
<a id="schema_IdvApplicantLinks"></a>
<a id="tocSidvapplicantlinks"></a>
<a id="tocsidvapplicantlinks"></a>

```json
{
  "_links": {
    "self": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[IdvSelfLink](#schemaidvselflink)|true|read-only|The details of links related to the resource.|

<h2 id="tocS_IdvApplicantSessionInformation">IdvApplicantSessionInformation</h2>
<!-- backwards compatibility -->
<a id="schemaidvapplicantsessioninformation"></a>
<a id="schema_IdvApplicantSessionInformation"></a>
<a id="tocSidvapplicantsessioninformation"></a>
<a id="tocsidvapplicantsessioninformation"></a>

```json
{
  "ip_address": "123:456:789:00",
  "number_of_sessions": 3,
  "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
  "initial_device": "desktop",
  "selected_documents": [
    {
      "country": "US",
      "document_type": "Driving licence"
    }
  ]
}

```

ApplicantSessionInformation

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ip_address|string|false|none|The applicant's IP address during the attempt.|
|number_of_sessions|integer|false|read-only|The number of sessions the applicant opened during the attempt.|
|user_agent|string|false|read-only|The user agent of the browser the applicant used during the attempt.|
|initial_device|[IdvInitialDevices](#schemaidvinitialdevices)|false|none|The type of device the applicant used to start the attempt.|
|selected_documents|[[IdvSelectedDocument](#schemaidvselecteddocument)]|false|read-only|The documents the applicant selected in order.|

<h2 id="tocS_IdvAttemptAsset">IdvAttemptAsset</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptasset"></a>
<a id="schema_IdvAttemptAsset"></a>
<a id="tocSidvattemptasset"></a>
<a id="tocsidvattemptasset"></a>

```json
{
  "type": "face_image",
  "_links": {
    "asset_url": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of asset.|
|_links|object|true|none|none|
|» asset_url|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|face_image|
|type|face_video|
|type|document_front_image|
|type|document_back_image|
|type|document_front_video|
|type|document_back_video|
|type|document_signature_image|
|type|secondary_document_front_image|
|type|secondary_document_back_image|
|type|secondary_document_front_video|
|type|secondary_document_back_video|
|type|secondary_document_signature_image|

<h2 id="tocS_IdvAttemptAssets">IdvAttemptAssets</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptassets"></a>
<a id="schema_IdvAttemptAssets"></a>
<a id="tocSidvattemptassets"></a>
<a id="tocsidvattemptassets"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "type": "face_image",
      "_links": {
        "asset_url": {
          "href": "http://example.com"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of assets.|
|skip|integer|true|none|The number of assets you want to skip. <br/>Example – There are 10 assets. If you provide `6`, the first six assets are skipped.|
|limit|integer|true|none|The maximum number of assets you want returned. <br/>Example – There are 10 assets. If you set `limit` to `5`, but skip the first six, four assets are returned.|
|data|[[IdvAttemptAsset](#schemaidvattemptasset)]|true|none|The list of assets for the current page.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_IdvAttemptId">IdvAttemptId</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptid"></a>
<a id="schema_IdvAttemptId"></a>
<a id="tocSidvattemptid"></a>
<a id="tocsidvattemptid"></a>

```json
"iatp_tkoi5db4hryu5cei5vwoabraio"

```

The unique identifier for the attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The unique identifier for the attempt.|

<h2 id="tocS_IdvAttemptLinks">IdvAttemptLinks</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptlinks"></a>
<a id="schema_IdvAttemptLinks"></a>
<a id="tocSidvattemptlinks"></a>
<a id="tocsidvattemptlinks"></a>

```json
{
  "self": {
    "href": "http://example.com"
  },
  "verification_url": {
    "href": "http://example.com"
  }
}

```

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvActiveLink](#schemaidvactivelink)|false|none|none|

<h2 id="tocS_IdvAttemptRequest">IdvAttemptRequest</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptrequest"></a>
<a id="schema_IdvAttemptRequest"></a>
<a id="tocSidvattemptrequest"></a>
<a id="tocsidvattemptrequest"></a>

```json
{
  "redirect_url": "http://example.com",
  "phone_number": {
    "country_code": "+33",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_document_issuing_country": "FR",
    "pre_selected_document_type": "Driving licence",
    "pre_selected_language": "en-US"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|redirect_url|string(uri)|true|none|The URL to redirect the applicant to after the attempt.|
|phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|client_information|[IdvClientInformation](#schemaidvclientinformation)|false|none|The applicant's details.|

<h2 id="tocS_IdvAttemptResponse">IdvAttemptResponse</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptresponse"></a>
<a id="schema_IdvAttemptResponse"></a>
<a id="tocSidvattemptresponse"></a>
<a id="tocsidvattemptresponse"></a>

```json
{
  "id": "iatp_tkoi5db4hryu5cei5vwoabraio",
  "redirect_url": "string",
  "status": "capture_aborted",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "phone_number": {
    "country_code": "+33",
    "number": "5555550102"
  },
  "client_information": {
    "pre_selected_residence_country": "FR",
    "pre_selected_document_issuing_country": "FR",
    "pre_selected_document_type": "Driving licence",
    "pre_selected_language": "en-US"
  },
  "applicant_session_information": {
    "ip_address": "123:456:789:00",
    "number_of_sessions": 3,
    "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
    "initial_device": "desktop",
    "selected_documents": [
      {
        "country": "US",
        "document_type": "Driving licence"
      }
    ]
  },
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IdvAttemptId](#schemaidvattemptid)|true|none|The unique identifier for the attempt.|
|redirect_url|string|true|none|The URL to redirect the applicant to after the attempt.|
|status|[IdvAttemptStatuses](#schemaidvattemptstatuses)|true|none|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|
|response_codes|[[IdvResponseCode](#schemaidvresponsecode)]|true|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|client_information|[IdvClientInformation](#schemaidvclientinformation)|false|none|The applicant's details.|
|applicant_session_information|[IdvApplicantSessionInformation](#schemaidvapplicantsessioninformation)|true|none|The details of the attempt.|

<h2 id="tocS_IdvAttemptResponseList">IdvAttemptResponseList</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptresponselist"></a>
<a id="schema_IdvAttemptResponseList"></a>
<a id="tocSidvattemptresponselist"></a>
<a id="tocsidvattemptresponselist"></a>

```json
{
  "total_count": 0,
  "skip": 0,
  "limit": 0,
  "data": [
    {
      "id": "iatp_tkoi5db4hryu5cei5vwoabraio",
      "redirect_url": "string",
      "status": "capture_aborted",
      "response_codes": [
        {
          "code": 10000,
          "summary": "document_front_not_captured"
        }
      ],
      "phone_number": {
        "country_code": "+33",
        "number": "5555550102"
      },
      "client_information": {
        "pre_selected_residence_country": "FR",
        "pre_selected_document_issuing_country": "FR",
        "pre_selected_document_type": "Driving licence",
        "pre_selected_language": "en-US"
      },
      "applicant_session_information": {
        "ip_address": "123:456:789:00",
        "number_of_sessions": 3,
        "user_agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36",
        "initial_device": "desktop",
        "selected_documents": [
          {
            "country": "US",
            "document_type": "Driving licence"
          }
        ]
      },
      "created_on": "2025-07-21T17:32:28Z",
      "modified_on": "2025-07-21T17:40:32Z"
    }
  ],
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "next": {
      "href": "http://example.com"
    },
    "previous": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_count|integer|true|none|The total number of attempts.|
|skip|integer|true|none|The number of attempts you want to skip, to help you view the relevant attempt. <br/>Example – There are 10 attempts. If you provide `6`, the first six attempts are skipped.|
|limit|integer|true|none|The maximum number of attempts you want returned. <br/>Example – There are 10 attempts. If you set `limit` to `5`, but skip the first six, four attempts are returned.|
|data|[[IdvAttemptResponse](#schemaidvattemptresponse)]|true|none|The details of the attempt.|
|_links|any|true|read-only|The details of links to the previous, current, and next resources.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvNextLink](#schemaidvnextlink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IdvPreviousLink](#schemaidvpreviouslink)|false|none|none|

<h2 id="tocS_IdvAttemptStatuses">IdvAttemptStatuses</h2>
<!-- backwards compatibility -->
<a id="schemaidvattemptstatuses"></a>
<a id="schema_IdvAttemptStatuses"></a>
<a id="tocSidvattemptstatuses"></a>
<a id="tocsidvattemptstatuses"></a>

```json
"capture_aborted"

```

The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|capture_aborted|
|*anonymous*|capture_in_progress|
|*anonymous*|checks_inconclusive|
|*anonymous*|checks_in_progress|
|*anonymous*|completed|
|*anonymous*|expired|
|*anonymous*|pending_redirection|
|*anonymous*|capture_refused|
|*anonymous*|terminated|

<h2 id="tocS_IdvBaseApplicant">IdvBaseApplicant</h2>
<!-- backwards compatibility -->
<a id="schemaidvbaseapplicant"></a>
<a id="schema_IdvBaseApplicant"></a>
<a id="tocSidvbaseapplicant"></a>
<a id="tocsidvbaseapplicant"></a>

```json
{
  "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
  "email": "hannah.bret@example.com",
  "external_applicant_name": "Hannah Bret"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|external_applicant_id|string|false|none|Your reference for the applicant.|
|email|string(email)|false|none|The applicant's email address.|
|external_applicant_name|string|false|none|The applicant's full name.|

<h2 id="tocS_IdvCertification">IdvCertification</h2>
<!-- backwards compatibility -->
<a id="schemaidvcertification"></a>
<a id="schema_IdvCertification"></a>
<a id="tocSidvcertification"></a>
<a id="tocsidvcertification"></a>

```json
{
  "type": "diatf",
  "data": {
    "gpg45_profile": "M1A",
    "level_of_confidence": "medium",
    "right_to_work": "GRANTED"
  }
}

```

The details of a certification associated with the identity verification.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The certification type.|
|data|[IdvDiatfCertificationData](#schemaidvdiatfcertificationdata)|false|none|The certification data. The properties returned depend on the certification `type`.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|diatf|

<h2 id="tocS_IdvCertifications">IdvCertifications</h2>
<!-- backwards compatibility -->
<a id="schemaidvcertifications"></a>
<a id="schema_IdvCertifications"></a>
<a id="tocSidvcertifications"></a>
<a id="tocsidvcertifications"></a>

```json
[
  {
    "type": "diatf",
    "data": {
      "gpg45_profile": "M1A",
      "level_of_confidence": "medium",
      "right_to_work": "GRANTED"
    }
  }
]

```

The certifications associated with the identity verification.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[IdvCertification](#schemaidvcertification)]|false|read-only|The certifications associated with the identity verification.|

<h2 id="tocS_IdvClientInformation">IdvClientInformation</h2>
<!-- backwards compatibility -->
<a id="schemaidvclientinformation"></a>
<a id="schema_IdvClientInformation"></a>
<a id="tocSidvclientinformation"></a>
<a id="tocsidvclientinformation"></a>

```json
{
  "pre_selected_residence_country": "FR",
  "pre_selected_document_issuing_country": "FR",
  "pre_selected_document_type": "Driving licence",
  "pre_selected_language": "en-US"
}

```

ClientInformation

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|pre_selected_residence_country|string|false|none|The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|pre_selected_document_issuing_country|string|false|none|The country that issued the applicant's identity document. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`|
|pre_selected_document_type|[IdvDocumentTypes](#schemaidvdocumenttypes)|false|none|The type of identity document the applicant uses for the attempt.|
|pre_selected_language|string(IETF BCP 47 language tag)|false|none|The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag|

<h2 id="tocS_IdvCountryCode">IdvCountryCode</h2>
<!-- backwards compatibility -->
<a id="schemaidvcountrycode"></a>
<a id="schema_IdvCountryCode"></a>
<a id="tocSidvcountrycode"></a>
<a id="tocsidvcountrycode"></a>

```json
"US"

```

The applicant's nationality. <br/>Standard – [ISO alpha-2 country code](https://www.checkout.com/docs/developer-resources/testing/codes/country-codes) <br/>Example – `FR`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(ISO 3166-1 alpha-2)|false|none|The applicant's nationality. <br/>Standard – [ISO alpha-2 country code](https://www.checkout.com/docs/developer-resources/testing/codes/country-codes) <br/>Example – `FR`|

<h2 id="tocS_IdvDeclaredData">IdvDeclaredData</h2>
<!-- backwards compatibility -->
<a id="schemaidvdeclareddata"></a>
<a id="schema_IdvDeclaredData"></a>
<a id="tocSidvdeclareddata"></a>
<a id="tocsidvdeclareddata"></a>

```json
{
  "name": "Hannah Bret",
  "birth_date": "1994-10-15"
}

```

The personal details provided by the applicant.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|The applicant's name.|
|birth_date|string(date)|false|none|The applicant's birth date. <br/>Format – `YYYY-MM-DD`|

<h2 id="tocS_IdvDiatfCertificationData">IdvDiatfCertificationData</h2>
<!-- backwards compatibility -->
<a id="schemaidvdiatfcertificationdata"></a>
<a id="schema_IdvDiatfCertificationData"></a>
<a id="tocSidvdiatfcertificationdata"></a>
<a id="tocsidvdiatfcertificationdata"></a>

```json
{
  "gpg45_profile": "M1A",
  "level_of_confidence": "medium",
  "right_to_work": "GRANTED"
}

```

The certification data returned for the `diatf` certification type.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|gpg45_profile|string|false|none|The GPG 45 identity profile the verification meets.|
|level_of_confidence|string|false|none|The level of confidence in the verified identity.|
|right_to_work|string|false|none|The outcome of the applicant's right to work check.|

#### Enumerated Values

|Property|Value|
|---|---|
|gpg45_profile|M1A|
|gpg45_profile|M1C|
|gpg45_profile|H1A|
|level_of_confidence|medium|
|level_of_confidence|high|

<h2 id="tocS_IdvDocument">IdvDocument</h2>
<!-- backwards compatibility -->
<a id="schemaidvdocument"></a>
<a id="schema_IdvDocument"></a>
<a id="tocSidvdocument"></a>
<a id="tocsidvdocument"></a>

```json
{
  "full_name": "string",
  "first_names": "string",
  "last_name": "string",
  "last_name_at_birth": "string",
  "birth_date": "2019-08-24",
  "birth_place": "string",
  "nationality": "US",
  "gender": "M",
  "personal_number": "string",
  "tax_identification_number": "string",
  "document_type": "Driving licence",
  "document_issuing_country": "US",
  "document_number": "string",
  "document_expiry_date": "2019-08-24",
  "document_issue_date": "2019-08-24",
  "document_issue_place": "string",
  "document_mrz": "string",
  "address": "123 Main Street, London, SW1A 1AA",
  "permit_obtaining_date": "2019-08-24",
  "permit_expiry_date": "2019-08-24",
  "permit_type_detailed": "string",
  "permit_type_remarks": "string",
  "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
  "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
  "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
}

```

The applicant's identity document details.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvIdentity](#schemaidvidentity)|false|none|The details of the applicant's verified identity.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» personal_number|string|false|none|The applicant's personal number. This depends on the document type.|
|» tax_identification_number|string|false|none|The tax identification number (TIN) extracted from the document.|
|» document_type|[IdvDocumentTypes](#schemaidvdocumenttypes)|false|none|The type of identity document.|
|» document_issuing_country|[IdvCountryCode](#schemaidvcountrycode)|false|none|The applicant's nationality. <br/>Standard – [ISO alpha-2 country code](https://www.checkout.com/docs/developer-resources/testing/codes/country-codes) <br/>Example – `FR`|
|» document_number|string|false|none|The document number extracted from the document.|
|» document_expiry_date|string(date)|false|none|The document expiry date extracted from the document.|
|» document_issue_date|string(date)|false|none|The document issue date extracted from the document.|
|» document_issue_place|string|false|none|The document's place of issue extracted from the document.|
|» document_mrz|string|false|none|The machine-readable zone (MRZ) data extracted from the document.|
|» address|string|false|none|The address extracted from the document.|
|» permit_obtaining_date|string(date)|false|none|The date the residence permit was obtained, extracted from the document.|
|» permit_expiry_date|string(date)|false|none|The residence permit expiry date extracted from the document.|
|» permit_type_detailed|string|false|none|The detailed residence permit type extracted from the document.|
|» permit_type_remarks|string|false|none|The residence permit remarks extracted from the document.|
|» front_image_signed_url|[IdvPreSignedUrl](#schemaidvpresignedurl)|false|none|The pre-signed URL to the captured image of the document.|
|» back_image_signed_url|[IdvPreSignedUrl](#schemaidvpresignedurl)|false|none|The pre-signed URL to the captured image of the document.|
|» signature_image_signed_url|[IdvPreSignedUrl](#schemaidvpresignedurl)|false|none|The pre-signed URL to the captured image of the document.|

<h2 id="tocS_IdvDocumentList">IdvDocumentList</h2>
<!-- backwards compatibility -->
<a id="schemaidvdocumentlist"></a>
<a id="schema_IdvDocumentList"></a>
<a id="tocSidvdocumentlist"></a>
<a id="tocsidvdocumentlist"></a>

```json
[
  {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M",
    "personal_number": "string",
    "tax_identification_number": "string",
    "document_type": "Driving licence",
    "document_issuing_country": "US",
    "document_number": "string",
    "document_expiry_date": "2019-08-24",
    "document_issue_date": "2019-08-24",
    "document_issue_place": "string",
    "document_mrz": "string",
    "address": "123 Main Street, London, SW1A 1AA",
    "permit_obtaining_date": "2019-08-24",
    "permit_expiry_date": "2019-08-24",
    "permit_type_detailed": "string",
    "permit_type_remarks": "string",
    "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
    "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
    "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  }
]

```

The details of the applicant's identity documents.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[IdvDocument](#schemaidvdocument)]|false|read-only|The details of the applicant's identity documents.|

<h2 id="tocS_IdvDocumentTypes">IdvDocumentTypes</h2>
<!-- backwards compatibility -->
<a id="schemaidvdocumenttypes"></a>
<a id="schema_IdvDocumentTypes"></a>
<a id="tocSidvdocumenttypes"></a>
<a id="tocsidvdocumenttypes"></a>

```json
"Driving licence"

```

The type of identity document.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The type of identity document.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|Driving licence|
|*anonymous*|ID|
|*anonymous*|Other|
|*anonymous*|Passport|
|*anonymous*|Residence Permit|
|*anonymous*|Travel Document|
|*anonymous*|Visa|

<h2 id="tocS_IdvDomesticPhoneNumber">IdvDomesticPhoneNumber</h2>
<!-- backwards compatibility -->
<a id="schemaidvdomesticphonenumber"></a>
<a id="schema_IdvDomesticPhoneNumber"></a>
<a id="tocSidvdomesticphonenumber"></a>
<a id="tocsidvdomesticphonenumber"></a>

```json
"5555550102"

```

The applicant's mobile number, without the country code.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The applicant's mobile number, without the country code.|

<h2 id="tocS_IdvFace">IdvFace</h2>
<!-- backwards compatibility -->
<a id="schemaidvface"></a>
<a id="schema_IdvFace"></a>
<a id="tocSidvface"></a>
<a id="tocsidvface"></a>

```json
{
  "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
}

```

The details of the image of the applicant's face extracted from the video.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|image_signed_url|[IdvPreSignedUrl](#schemaidvpresignedurl)|true|none|The URL to the face image.|

<h2 id="tocS_IdvGender">IdvGender</h2>
<!-- backwards compatibility -->
<a id="schemaidvgender"></a>
<a id="schema_IdvGender"></a>
<a id="tocSidvgender"></a>
<a id="tocsidvgender"></a>

```json
"M"

```

The applicant's gender.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The applicant's gender.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|M|
|*anonymous*|F|

<h2 id="tocS_IdvHalLink">IdvHalLink</h2>
<!-- backwards compatibility -->
<a id="schemaidvhallink"></a>
<a id="schema_IdvHalLink"></a>
<a id="tocSidvhallink"></a>
<a id="tocsidvhallink"></a>

```json
{
  "href": "http://example.com"
}

```

The URL to the applicant profile resource.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string(uri)|true|none|none|

<h2 id="tocS_IdvIdentity">IdvIdentity</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentity"></a>
<a id="schema_IdvIdentity"></a>
<a id="tocSidvidentity"></a>
<a id="tocsidvidentity"></a>

```json
{
  "full_name": "string",
  "first_names": "string",
  "last_name": "string",
  "last_name_at_birth": "string",
  "birth_date": "2019-08-24",
  "birth_place": "string",
  "nationality": "US",
  "gender": "M"
}

```

The details of the applicant's verified identity.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|full_name|string|true|read-only|The applicant's full name.|
|first_names|string|false|read-only|The applicant's first names.|
|last_name|string|false|read-only|The applicant's last name.|
|last_name_at_birth|string|false|read-only|The applicant's last name at birth.|
|birth_date|string(date)|true|read-only|The applicant's birth date. <br/>Format `YYYY-MM-DD`|
|birth_place|string|false|read-only|The applicant's birth place.|
|nationality|[IdvCountryCode](#schemaidvcountrycode)|false|none|The applicant's nationality. <br/>Standard – [ISO alpha-2 country code](https://www.checkout.com/docs/developer-resources/testing/codes/country-codes) <br/>Example – `FR`|
|gender|[IdvGender](#schemaidvgender)|false|none|The applicant's gender.|

<h2 id="tocS_IdvIdentityDeclaredData">IdvIdentityDeclaredData</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentitydeclareddata"></a>
<a id="schema_IdvIdentityDeclaredData"></a>
<a id="tocSidvidentitydeclareddata"></a>
<a id="tocsidvidentitydeclareddata"></a>

```json
{
  "name": "Hannah Bret",
  "birth_date": "1994-10-15",
  "phone_number": {
    "country_code": "+33",
    "number": "5555550102"
  },
  "email": "hannah.bret@example.com",
  "address": {
    "address_line1": "123 Main Street",
    "address_line2": "Apt 4B",
    "city": "London",
    "state": "Greater London",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

The personal details provided by the applicant.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvDeclaredData](#schemaidvdeclareddata)|false|none|The personal details provided by the applicant.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» phone_number|[IdvPhoneNumber](#schemaidvphonenumber)|false|none|The applicant's mobile phone number, if sharing the attempt URL via SMS.|
|» email|string(email)¦null|false|none|The applicant's email address.|
|» address|[IdvAddress](#schemaidvaddress)|false|none|The applicant's address.|

<h2 id="tocS_IdvIdentityVerification">IdvIdentityVerification</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverification"></a>
<a id="schema_IdvIdentityVerification"></a>
<a id="tocSidvidentityverification"></a>
<a id="tocsidvidentityverification"></a>

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M"
  },
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "medium",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "verification_policy_version": "string",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "phone_number": {
      "country_code": "+33",
      "number": "5555550102"
    },
    "email": "hannah.bret@example.com",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "string",
      "first_names": "string",
      "last_name": "string",
      "last_name_at_birth": "string",
      "birth_date": "2019-08-24",
      "birth_place": "string",
      "nationality": "US",
      "gender": "M",
      "personal_number": "string",
      "tax_identification_number": "string",
      "document_type": "Driving licence",
      "document_issuing_country": "US",
      "document_number": "string",
      "document_expiry_date": "2019-08-24",
      "document_issue_date": "2019-08-24",
      "document_issue_place": "string",
      "document_mrz": "string",
      "address": "123 Main Street, London, SW1A 1AA",
      "permit_obtaining_date": "2019-08-24",
      "permit_expiry_date": "2019-08-24",
      "permit_type_detailed": "string",
      "permit_type_remarks": "string",
      "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|read-only|The identity verification's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvIdentityVerificationBase](#schemaidvidentityverificationbase)|false|none|none|

<h2 id="tocS_IdvIdentityVerificationBase">IdvIdentityVerificationBase</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationbase"></a>
<a id="schema_IdvIdentityVerificationBase"></a>
<a id="tocSidvidentityverificationbase"></a>
<a id="tocsidvidentityverificationbase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M"
  },
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "medium",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "verification_policy_version": "string",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "phone_number": {
      "country_code": "+33",
      "number": "5555550102"
    },
    "email": "hannah.bret@example.com",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "string",
      "first_names": "string",
      "last_name": "string",
      "last_name_at_birth": "string",
      "birth_date": "2019-08-24",
      "birth_place": "string",
      "nationality": "US",
      "gender": "M",
      "personal_number": "string",
      "tax_identification_number": "string",
      "document_type": "Driving licence",
      "document_issuing_country": "US",
      "document_number": "string",
      "document_expiry_date": "2019-08-24",
      "document_issue_date": "2019-08-24",
      "document_issue_place": "string",
      "document_mrz": "string",
      "address": "123 Main Street, London, SW1A 1AA",
      "permit_obtaining_date": "2019-08-24",
      "permit_expiry_date": "2019-08-24",
      "permit_type_detailed": "string",
      "permit_type_remarks": "string",
      "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|false|none|Your configuration ID.|
|status|[IdvVerificationStatuses](#schemaidvverificationstatuses)|true|read-only|The [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes).|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|none|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|risk_labels|[IdvRiskLabels](#schemaidvrisklabels)|true|none|One or more codes that provide more information about risks associated with the verification.|
|verified_identity|[IdvVerifiedIdentity](#schemaidvverifiedidentity)|false|none|The details of the applicant's verified identity.|
|certifications|[IdvCertifications](#schemaidvcertifications)|false|none|The certifications associated with the identity verification.|
|verification_policy_version|string|false|read-only|The version of the verification policy applied. Only returned for certified verifications.|
|declared_data|[IdvIdentityDeclaredData](#schemaidvidentitydeclareddata)|true|none|The personal details provided by the applicant.|
|documents|[IdvDocumentList](#schemaidvdocumentlist)|false|none|The details of the applicant's identity documents.|
|face|[IdvFace](#schemaidvface)|false|read-only|The details of the image of the applicant's face extracted from the video.|
|_links|[IdvIdentityVerificationLinks](#schemaidvidentityverificationlinks)|true|read-only|The details of links related to the resource.|

<h2 id="tocS_IdvIdentityVerificationCreateBase">IdvIdentityVerificationCreateBase</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationcreatebase"></a>
<a id="schema_IdvIdentityVerificationCreateBase"></a>
<a id="tocSidvidentityverificationcreatebase"></a>
<a id="tocsidvidentityverificationcreatebase"></a>

```json
{
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "phone_number": {
      "country_code": "+33",
      "number": "5555550102"
    },
    "email": "hannah.bret@example.com",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "string",
      "first_names": "string",
      "last_name": "string",
      "last_name_at_birth": "string",
      "birth_date": "2019-08-24",
      "birth_place": "string",
      "nationality": "US",
      "gender": "M",
      "personal_number": "string",
      "tax_identification_number": "string",
      "document_type": "Driving licence",
      "document_issuing_country": "US",
      "document_number": "string",
      "document_expiry_date": "2019-08-24",
      "document_issue_date": "2019-08-24",
      "document_issue_place": "string",
      "document_mrz": "string",
      "address": "123 Main Street, London, SW1A 1AA",
      "permit_obtaining_date": "2019-08-24",
      "permit_expiry_date": "2019-08-24",
      "permit_type_detailed": "string",
      "permit_type_remarks": "string",
      "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M"
  },
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "medium",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "verification_policy_version": "string",
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applicant_id|[ApplicantId](#schemaapplicantid)|true|none|The applicant's unique identifier.|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|false|none|Your configuration ID.|
|status|[IdvVerificationStatuses](#schemaidvverificationstatuses)|true|none|The [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes).|
|declared_data|[IdvIdentityDeclaredData](#schemaidvidentitydeclareddata)|true|none|The personal details provided by the applicant.|
|documents|[IdvDocumentList](#schemaidvdocumentlist)|false|none|The details of the applicant's identity documents.|
|face|[IdvFace](#schemaidvface)|false|read-only|The details of the image of the applicant's face extracted from the video.|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|none|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|risk_labels|[IdvRiskLabels](#schemaidvrisklabels)|true|none|One or more codes that provide more information about risks associated with the verification.|
|verified_identity|[IdvVerifiedIdentity](#schemaidvverifiedidentity)|false|none|The details of the applicant's verified identity.|
|certifications|[IdvCertifications](#schemaidvcertifications)|false|none|The certifications associated with the identity verification.|
|verification_policy_version|string|false|read-only|The version of the verification policy applied. Only returned for certified verifications.|
|_links|[IdvIdentityVerificationLinks](#schemaidvidentityverificationlinks)|true|none|The details of links related to the resource.|

<h2 id="tocS_IdvIdentityVerificationError">IdvIdentityVerificationError</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationerror"></a>
<a id="schema_IdvIdentityVerificationError"></a>
<a id="tocSidvidentityverificationerror"></a>
<a id="tocsidvidentityverificationerror"></a>

```json
{
  "error_type": "unprocessable_entity",
  "error_codes": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error_type|string|true|none|The type of error.|
|error_codes|[string]|true|none|The error codes.|

#### Enumerated Values

|Property|Value|
|---|---|
|error_type|unprocessable_entity|
|error_type|request_invalid|

<h2 id="tocS_IdvIdentityVerificationHelper">IdvIdentityVerificationHelper</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationhelper"></a>
<a id="schema_IdvIdentityVerificationHelper"></a>
<a id="tocSidvidentityverificationhelper"></a>
<a id="tocsidvidentityverificationhelper"></a>

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M"
  },
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "medium",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "verification_policy_version": "string",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "phone_number": {
      "country_code": "+33",
      "number": "5555550102"
    },
    "email": "hannah.bret@example.com",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "string",
      "first_names": "string",
      "last_name": "string",
      "last_name_at_birth": "string",
      "birth_date": "2019-08-24",
      "birth_place": "string",
      "nationality": "US",
      "gender": "M",
      "personal_number": "string",
      "tax_identification_number": "string",
      "document_type": "Driving licence",
      "document_issuing_country": "US",
      "document_number": "string",
      "document_expiry_date": "2019-08-24",
      "document_issue_date": "2019-08-24",
      "document_issue_place": "string",
      "document_mrz": "string",
      "address": "123 Main Street, London, SW1A 1AA",
      "permit_obtaining_date": "2019-08-24",
      "permit_expiry_date": "2019-08-24",
      "permit_type_detailed": "string",
      "permit_type_remarks": "string",
      "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "redirect_url": "http://example.com",
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "verification_url": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|read-only|The identity verification's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvIdentityVerificationHelperBase](#schemaidvidentityverificationhelperbase)|false|none|none|

<h2 id="tocS_IdvIdentityVerificationHelperBase">IdvIdentityVerificationHelperBase</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationhelperbase"></a>
<a id="schema_IdvIdentityVerificationHelperBase"></a>
<a id="tocSidvidentityverificationhelperbase"></a>
<a id="tocsidvidentityverificationhelperbase"></a>

```json
{
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M"
  },
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "medium",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "verification_policy_version": "string",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "phone_number": {
      "country_code": "+33",
      "number": "5555550102"
    },
    "email": "hannah.bret@example.com",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "string",
      "first_names": "string",
      "last_name": "string",
      "last_name_at_birth": "string",
      "birth_date": "2019-08-24",
      "birth_place": "string",
      "nationality": "US",
      "gender": "M",
      "personal_number": "string",
      "tax_identification_number": "string",
      "document_type": "Driving licence",
      "document_issuing_country": "US",
      "document_number": "string",
      "document_expiry_date": "2019-08-24",
      "document_issue_date": "2019-08-24",
      "document_issue_place": "string",
      "document_mrz": "string",
      "address": "123 Main Street, London, SW1A 1AA",
      "permit_obtaining_date": "2019-08-24",
      "permit_expiry_date": "2019-08-24",
      "permit_type_detailed": "string",
      "permit_type_remarks": "string",
      "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "redirect_url": "http://example.com",
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "verification_url": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|user_journey_id|[IdvUserJourneyId](#schemaidvuserjourneyid)|false|none|Your configuration ID.|
|applicant_id|[ApplicantId](#schemaapplicantid)|false|none|The applicant's unique identifier.|
|status|[IdvVerificationStatuses](#schemaidvverificationstatuses)|true|read-only|The [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes).|
|response_codes|[IdvResponseCodes](#schemaidvresponsecodes)|true|none|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|
|risk_labels|[IdvRiskLabels](#schemaidvrisklabels)|true|none|One or more codes that provide more information about risks associated with the verification.|
|verified_identity|[IdvIdentity](#schemaidvidentity)|false|read-only|The details of the applicant's verified identity.|
|certifications|[IdvCertifications](#schemaidvcertifications)|false|none|The certifications associated with the identity verification.|
|verification_policy_version|string|false|read-only|The version of the verification policy applied. Only returned for certified verifications.|
|declared_data|[IdvIdentityDeclaredData](#schemaidvidentitydeclareddata)|true|none|The personal details provided by the applicant.|
|documents|[IdvDocumentList](#schemaidvdocumentlist)|false|none|The details of the applicant's identity documents.|
|face|[IdvFace](#schemaidvface)|false|read-only|The details of the image of the applicant's face extracted from the video.|
|redirect_url|string(uri)|true|none|The URL to redirect the applicant to after the attempt.|
|_links|[IdvIdentityVerificationHelperLinks](#schemaidvidentityverificationhelperlinks)|true|read-only|The details of links related to the resource.|

<h2 id="tocS_IdvIdentityVerificationHelperLinks">IdvIdentityVerificationHelperLinks</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationhelperlinks"></a>
<a id="schema_IdvIdentityVerificationHelperLinks"></a>
<a id="tocSidvidentityverificationhelperlinks"></a>
<a id="tocsidvidentityverificationhelperlinks"></a>

```json
{
  "self": {
    "href": "http://example.com"
  },
  "verification_url": {
    "href": "http://example.com"
  }
}

```

The details of links related to the resource.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvActiveLink](#schemaidvactivelink)|false|none|none|

<h2 id="tocS_IdvIdentityVerificationId">IdvIdentityVerificationId</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationid"></a>
<a id="schema_IdvIdentityVerificationId"></a>
<a id="tocSidvidentityverificationid"></a>
<a id="tocsidvidentityverificationid"></a>

```json
"idv_tkoi5db4hryu5cei5vwoabr7we"

```

The identity verification's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The identity verification's unique identifier.|

<h2 id="tocS_IdvIdentityVerificationLinks">IdvIdentityVerificationLinks</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationlinks"></a>
<a id="schema_IdvIdentityVerificationLinks"></a>
<a id="tocSidvidentityverificationlinks"></a>
<a id="tocsidvidentityverificationlinks"></a>

```json
{
  "self": {
    "href": "http://example.com"
  },
  "applicant": {
    "href": "http://example.com"
  }
}

```

The details of links related to the resource.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvSelfLink](#schemaidvselflink)|false|none|The details of links related to the resource.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvApplicantLink](#schemaidvapplicantlink)|false|none|The URL to the applicant's profile.|

<h2 id="tocS_IdvIdentityVerificationOutput">IdvIdentityVerificationOutput</h2>
<!-- backwards compatibility -->
<a id="schemaidvidentityverificationoutput"></a>
<a id="schema_IdvIdentityVerificationOutput"></a>
<a id="tocSidvidentityverificationoutput"></a>
<a id="tocsidvidentityverificationoutput"></a>

```json
{
  "id": "idv_tkoi5db4hryu5cei5vwoabr7we",
  "created_on": "2025-07-21T17:32:28Z",
  "modified_on": "2025-07-21T17:40:32Z",
  "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
  "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
  "status": "approved",
  "declared_data": {
    "name": "Hannah Bret",
    "birth_date": "1994-10-15",
    "phone_number": {
      "country_code": "+33",
      "number": "5555550102"
    },
    "email": "hannah.bret@example.com",
    "address": {
      "address_line1": "123 Main Street",
      "address_line2": "Apt 4B",
      "city": "London",
      "state": "Greater London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "documents": [
    {
      "full_name": "string",
      "first_names": "string",
      "last_name": "string",
      "last_name_at_birth": "string",
      "birth_date": "2019-08-24",
      "birth_place": "string",
      "nationality": "US",
      "gender": "M",
      "personal_number": "string",
      "tax_identification_number": "string",
      "document_type": "Driving licence",
      "document_issuing_country": "US",
      "document_number": "string",
      "document_expiry_date": "2019-08-24",
      "document_issue_date": "2019-08-24",
      "document_issue_place": "string",
      "document_mrz": "string",
      "address": "123 Main Street, London, SW1A 1AA",
      "permit_obtaining_date": "2019-08-24",
      "permit_expiry_date": "2019-08-24",
      "permit_type_detailed": "string",
      "permit_type_remarks": "string",
      "front_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "back_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4",
      "signature_image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
    }
  ],
  "face": {
    "image_signed_url": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
  },
  "response_codes": [
    {
      "code": 10000,
      "summary": "document_front_not_captured"
    }
  ],
  "risk_labels": [
    "multiple_faces_detected"
  ],
  "verified_identity": {
    "full_name": "string",
    "first_names": "string",
    "last_name": "string",
    "last_name_at_birth": "string",
    "birth_date": "2019-08-24",
    "birth_place": "string",
    "nationality": "US",
    "gender": "M"
  },
  "certifications": [
    {
      "type": "diatf",
      "data": {
        "gpg45_profile": "M1A",
        "level_of_confidence": "medium",
        "right_to_work": "GRANTED"
      }
    }
  ],
  "verification_policy_version": "string",
  "_links": {
    "self": {
      "href": "http://example.com"
    },
    "applicant": {
      "href": "http://example.com"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IdvIdentityVerificationId](#schemaidvidentityverificationid)|true|none|The identity verification's unique identifier.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[DatedObject](#schemadatedobject)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdvIdentityVerificationCreateBase](#schemaidvidentityverificationcreatebase)|false|none|none|

<h2 id="tocS_IdvInitialDevices">IdvInitialDevices</h2>
<!-- backwards compatibility -->
<a id="schemaidvinitialdevices"></a>
<a id="schema_IdvInitialDevices"></a>
<a id="tocSidvinitialdevices"></a>
<a id="tocsidvinitialdevices"></a>

```json
"desktop"

```

The type of device the applicant used to start the attempt.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The type of device the applicant used to start the attempt.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|desktop|
|*anonymous*|mobile|

<h2 id="tocS_IdvNextLink">IdvNextLink</h2>
<!-- backwards compatibility -->
<a id="schemaidvnextlink"></a>
<a id="schema_IdvNextLink"></a>
<a id="tocSidvnextlink"></a>
<a id="tocsidvnextlink"></a>

```json
{
  "next": {
    "href": "http://example.com"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|next|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

<h2 id="tocS_IdvPdf">IdvPdf</h2>
<!-- backwards compatibility -->
<a id="schemaidvpdf"></a>
<a id="schema_IdvPdf"></a>
<a id="tocSidvpdf"></a>
<a id="tocsidvpdf"></a>

```json
{
  "pdf_report": "https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|pdf_report|[IdvPreSignedUrl](#schemaidvpresignedurl)|true|none|The pre-signed URL to the PDF report.|

<h2 id="tocS_IdvPhoneNumber">IdvPhoneNumber</h2>
<!-- backwards compatibility -->
<a id="schemaidvphonenumber"></a>
<a id="schema_IdvPhoneNumber"></a>
<a id="tocSidvphonenumber"></a>
<a id="tocsidvphonenumber"></a>

```json
{
  "country_code": "+33",
  "number": "5555550102"
}

```

The applicant's mobile phone number, if sharing the attempt URL via SMS.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|[IdvPhonePrefix](#schemaidvphoneprefix)|true|none|The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).|
|number|[IdvDomesticPhoneNumber](#schemaidvdomesticphonenumber)|true|none|The applicant's mobile number, without the country code.|

<h2 id="tocS_IdvPhonePrefix">IdvPhonePrefix</h2>
<!-- backwards compatibility -->
<a id="schemaidvphoneprefix"></a>
<a id="schema_IdvPhonePrefix"></a>
<a id="tocSidvphoneprefix"></a>
<a id="tocsidvphoneprefix"></a>

```json
"+33"

```

The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).|

<h2 id="tocS_IdvPreSignedUrl">IdvPreSignedUrl</h2>
<!-- backwards compatibility -->
<a id="schemaidvpresignedurl"></a>
<a id="schema_IdvPreSignedUrl"></a>
<a id="tocSidvpresignedurl"></a>
<a id="tocsidvpresignedurl"></a>

```json
"https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b7d87fec4f11f0df949da7beade2519cf1a51ce70fe9cc1cf0470d73f5340e4"

```

The pre-signed URL to the captured image of the document.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(uri)|false|none|The pre-signed URL to the captured image of the document.|

<h2 id="tocS_IdvPreviousLink">IdvPreviousLink</h2>
<!-- backwards compatibility -->
<a id="schemaidvpreviouslink"></a>
<a id="schema_IdvPreviousLink"></a>
<a id="tocSidvpreviouslink"></a>
<a id="tocsidvpreviouslink"></a>

```json
{
  "previous": {
    "href": "http://example.com"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|previous|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the applicant profile resource.|

<h2 id="tocS_IdvResponseCode">IdvResponseCode</h2>
<!-- backwards compatibility -->
<a id="schemaidvresponsecode"></a>
<a id="schema_IdvResponseCode"></a>
<a id="tocSidvresponsecode"></a>
<a id="tocsidvresponsecode"></a>

```json
{
  "code": 10000,
  "summary": "document_front_not_captured"
}

```

The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provides more information about the identity verification status.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|code|[IdvResponseCodeCode](#schemaidvresponsecodecode)|true|none|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|
|summary|[IdvResponseCodeSummary](#schemaidvresponsecodesummary)|true|none|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|

<h2 id="tocS_IdvResponseCodeCode">IdvResponseCodeCode</h2>
<!-- backwards compatibility -->
<a id="schemaidvresponsecodecode"></a>
<a id="schema_IdvResponseCodeCode"></a>
<a id="tocSidvresponsecodecode"></a>
<a id="tocsidvresponsecodecode"></a>

```json
10000

```

The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|integer|false|read-only|The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|

<h2 id="tocS_IdvResponseCodes">IdvResponseCodes</h2>
<!-- backwards compatibility -->
<a id="schemaidvresponsecodes"></a>
<a id="schema_IdvResponseCodes"></a>
<a id="tocSidvresponsecodes"></a>
<a id="tocsidvresponsecodes"></a>

```json
[
  {
    "code": 10000,
    "summary": "document_front_not_captured"
  }
]

```

One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[IdvResponseCode](#schemaidvresponsecode)]|false|read-only|One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.|

<h2 id="tocS_IdvResponseCodeSummary">IdvResponseCodeSummary</h2>
<!-- backwards compatibility -->
<a id="schemaidvresponsecodesummary"></a>
<a id="schema_IdvResponseCodeSummary"></a>
<a id="tocSidvresponsecodesummary"></a>
<a id="tocsidvresponsecodesummary"></a>

```json
"document_front_not_captured"

```

The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).|

<h2 id="tocS_IdvRiskLabel">IdvRiskLabel</h2>
<!-- backwards compatibility -->
<a id="schemaidvrisklabel"></a>
<a id="schema_IdvRiskLabel"></a>
<a id="tocSidvrisklabel"></a>
<a id="tocsidvrisklabel"></a>

```json
"multiple_faces_detected"

```

A code that provides more information about a risk associated with the verification.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|A code that provides more information about a risk associated with the verification.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|multiple_faces_detected|
|*anonymous*|mcc_not_confident|
|*anonymous*|risky_document_format|

<h2 id="tocS_IdvRiskLabels">IdvRiskLabels</h2>
<!-- backwards compatibility -->
<a id="schemaidvrisklabels"></a>
<a id="schema_IdvRiskLabels"></a>
<a id="tocSidvrisklabels"></a>
<a id="tocsidvrisklabels"></a>

```json
[
  "multiple_faces_detected"
]

```

One or more codes that provide more information about risks associated with the verification.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[IdvRiskLabel](#schemaidvrisklabel)]|false|read-only|One or more codes that provide more information about risks associated with the verification.|

<h2 id="tocS_IdvSelectedDocument">IdvSelectedDocument</h2>
<!-- backwards compatibility -->
<a id="schemaidvselecteddocument"></a>
<a id="schema_IdvSelectedDocument"></a>
<a id="tocSidvselecteddocument"></a>
<a id="tocsidvselecteddocument"></a>

```json
{
  "country": "US",
  "document_type": "Driving licence"
}

```

The details of the document the applicant selected.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country|[IdvCountryCode](#schemaidvcountrycode)|false|none|The applicant's nationality. <br/>Standard – [ISO alpha-2 country code](https://www.checkout.com/docs/developer-resources/testing/codes/country-codes) <br/>Example – `FR`|
|document_type|[IdvDocumentTypes](#schemaidvdocumenttypes)|false|none|The type of identity document.|

<h2 id="tocS_IdvSelfLink">IdvSelfLink</h2>
<!-- backwards compatibility -->
<a id="schemaidvselflink"></a>
<a id="schema_IdvSelfLink"></a>
<a id="tocSidvselflink"></a>
<a id="tocsidvselflink"></a>

```json
{
  "self": {
    "href": "http://example.com"
  }
}

```

The details of links related to the resource.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IdvHalLink](#schemaidvhallink)|true|none|The URL to the resource.|

<h2 id="tocS_IdvUserJourneyId">IdvUserJourneyId</h2>
<!-- backwards compatibility -->
<a id="schemaidvuserjourneyid"></a>
<a id="schema_IdvUserJourneyId"></a>
<a id="tocSidvuserjourneyid"></a>
<a id="tocsidvuserjourneyid"></a>

```json
"usj_tkoi5db4hryu5cei5vwoabr7we"

```

Your configuration ID.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|Your configuration ID.|

<h2 id="tocS_IdvVerificationStatuses">IdvVerificationStatuses</h2>
<!-- backwards compatibility -->
<a id="schemaidvverificationstatuses"></a>
<a id="schema_IdvVerificationStatuses"></a>
<a id="tocSidvverificationstatuses"></a>
<a id="tocsidvverificationstatuses"></a>

```json
"approved"

```

The [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|approved|
|*anonymous*|capture_in_progress|
|*anonymous*|checks_in_progress|
|*anonymous*|created|
|*anonymous*|declined|
|*anonymous*|inconclusive|
|*anonymous*|pending|
|*anonymous*|refused|
|*anonymous*|retry_required|

<h2 id="tocS_IdvVerifiedIdentity">IdvVerifiedIdentity</h2>
<!-- backwards compatibility -->
<a id="schemaidvverifiedidentity"></a>
<a id="schema_IdvVerifiedIdentity"></a>
<a id="tocSidvverifiedidentity"></a>
<a id="tocsidvverifiedidentity"></a>

```json
{
  "full_name": "string",
  "first_names": "string",
  "last_name": "string",
  "last_name_at_birth": "string",
  "birth_date": "2019-08-24",
  "birth_place": "string",
  "nationality": "US",
  "gender": "M"
}

```

The details of the applicant's verified identity.

### Properties

*None*

<h2 id="tocS_AccountHolder">AccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaaccountholder"></a>
<a id="schema_AccountHolder"></a>
<a id="tocSaccountholder"></a>
<a id="tocsaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "John",
  "last_name": "Smith",
  "tax_id": "123456",
  "date_of_birth": "1986-01-01",
  "country_of_birth": "GB",
  "residential_status": "resident",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "identification": {
    "type": "SSN",
    "issuing_country": "string",
    "number": "string"
  }
}

```

The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[01_PayoutRequestIndividualAccountHolder](#schema01_payoutrequestindividualaccountholder)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[03_PayoutRequestGovernmentAccountHolder](#schema03_payoutrequestgovernmentaccountholder)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[02_PayoutRequestCorporateAccountHolder](#schema02_payoutrequestcorporateaccountholder)|false|none|Store a previously tokenized instrument|

<h2 id="tocS_AccountHolderAch">AccountHolderAch</h2>
<!-- backwards compatibility -->
<a id="schemaaccountholderach"></a>
<a id="schema_AccountHolderAch"></a>
<a id="tocSaccountholderach"></a>
<a id="tocsaccountholderach"></a>

```json
{
  "type": "individual",
  "first_name": "John",
  "last_name": "Smith",
  "company_name": "Test company",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "date_of_birth": "string",
  "identification": {
    "type": "SSN",
    "issuing_country": "string",
    "number": "string"
  }
}

```

The account holder details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account holder|
|first_name|string|true|none|The first name of the account holder|
|last_name|string|true|none|The last name of the account holder|
|company_name|string|false|none|The legal name of a registered company that holds the account|
|billing_address|[Address](#schemaaddress)|false|none|The account holder's billing address.|
|date_of_birth|string|false|none|The account holder's date of birth.|
|identification|object|false|none|The account holder's government document identification. For example, the social security number (SSN).|
|» type|string|false|none|The document type|
|» issuing_country|string|false|none|The country where the document was issued|
|» number|string|false|none|The document number|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|government|

<h2 id="tocS_AccountHolderEps">AccountHolderEps</h2>
<!-- backwards compatibility -->
<a id="schemaaccountholdereps"></a>
<a id="schema_AccountHolderEps"></a>
<a id="tocSaccountholdereps"></a>
<a id="tocsaccountholdereps"></a>

```json
{
  "first_name": "John",
  "last_name": "Smith"
}

```

The account holder details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|true|none|The first name of the account holder|
|last_name|string|true|none|The last name of the account holder|

<h2 id="tocS_AccountHolderIdentification">AccountHolderIdentification</h2>
<!-- backwards compatibility -->
<a id="schemaaccountholderidentification"></a>
<a id="schema_AccountHolderIdentification"></a>
<a id="tocSaccountholderidentification"></a>
<a id="tocsaccountholderidentification"></a>

```json
{
  "type": "passport",
  "number": "09876",
  "issuing_country": "US"
}

```

Bank account holder's proof of identification

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of identification used to identify the account holder|
|number|string|false|none|The identification number|
|issuing_country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the country that issued the identification|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|driving_licence|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_AccountHolderResponse">AccountHolderResponse</h2>
<!-- backwards compatibility -->
<a id="schemaaccountholderresponse"></a>
<a id="schema_AccountHolderResponse"></a>
<a id="tocSaccountholderresponse"></a>
<a id="tocsaccountholderresponse"></a>

```json
{
  "first_name": "Hannah",
  "last_name": "Bret",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

The account holder details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The account holder's first name.|
|last_name|string|false|none|The account holder's last name.|
|billing_address|[Address](#schemaaddress)|false|none|The account holder's billing address.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The account holder's phone number.|

<h2 id="tocS_BankDetails">BankDetails</h2>
<!-- backwards compatibility -->
<a id="schemabankdetails"></a>
<a id="schema_BankDetails"></a>
<a id="tocSbankdetails"></a>
<a id="tocsbankdetails"></a>

```json
{
  "name": "Lloyds TSB",
  "branch": "Bournemouth",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

Details of the bank

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|The bank's name|
|branch|string|false|none|The bank branch's name|
|address|[Address](#schemaaddress)|false|none|The bank's contact address|

<h2 id="tocS_NetworkToken">NetworkToken</h2>
<!-- backwards compatibility -->
<a id="schemanetworktoken"></a>
<a id="schema_NetworkToken"></a>
<a id="tocSnetworktoken"></a>
<a id="tocsnetworktoken"></a>

```json
{
  "id": "nt_y3oqhf46pyzuxjbcn2giaqnb44",
  "state": "active"
}

```

Network token details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The network token's unique identifier.|
|state|string|false|none|The token status|

#### Enumerated Values

|Property|Value|
|---|---|
|state|active|
|state|suspended|
|state|inactive|

<h2 id="tocS_ProvisionNetworkToken">ProvisionNetworkToken</h2>
<!-- backwards compatibility -->
<a id="schemaprovisionnetworktoken"></a>
<a id="schema_ProvisionNetworkToken"></a>
<a id="tocSprovisionnetworktoken"></a>
<a id="tocsprovisionnetworktoken"></a>

```json
{
  "provision": true
}

```

Provision network token details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|provision|boolean|false|none|Indicates whether a network token should be provisioned or not. If you do not pass the provision field, the default value will be set as false.|

<h2 id="tocS_RetrieveInstrumentCustomerResponse">RetrieveInstrumentCustomerResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrieveinstrumentcustomerresponse"></a>
<a id="schema_RetrieveInstrumentCustomerResponse"></a>
<a id="tocSretrieveinstrumentcustomerresponse"></a>
<a id="tocsretrieveinstrumentcustomerresponse"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "default": true
}

```

Stored customer details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The customer's unique identifier. This can be passed as a source when making a payment.|
|email|string|false|none|The customer's email address|
|name|string|false|none|The customer's name|
|default|boolean|false|none|This will be true if this instrument is set as the default for the customer|

<h2 id="tocS_StoreAccountHolderTokenRequest">StoreAccountHolderTokenRequest</h2>
<!-- backwards compatibility -->
<a id="schemastoreaccountholdertokenrequest"></a>
<a id="schema_StoreAccountHolderTokenRequest"></a>
<a id="tocSstoreaccountholdertokenrequest"></a>
<a id="tocsstoreaccountholdertokenrequest"></a>

```json
{
  "first_name": "John",
  "last_name": "Smith",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

The account holder details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The first name of the account holder|
|last_name|string|false|none|The last name of the account holder|
|billing_address|[Address](#schemaaddress)|false|none|The billing address of the account holder|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the account holder|

<h2 id="tocS_UpdateCardAccountHolder">UpdateCardAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaupdatecardaccountholder"></a>
<a id="schema_UpdateCardAccountHolder"></a>
<a id="tocSupdatecardaccountholder"></a>
<a id="tocsupdatecardaccountholder"></a>

```json
{
  "first_name": "John",
  "last_name": "Smith",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

The account holder details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The first name of the account holder|
|last_name|string|false|none|The last name of the account holder|
|billing_address|[Address](#schemaaddress)|false|none|The billing address of the account holder|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the account holder|

<h2 id="tocS_RetrieveAchInstrumentResponse">RetrieveAchInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrieveachinstrumentresponse"></a>
<a id="schema_RetrieveAchInstrumentResponse"></a>
<a id="tocSretrieveachinstrumentresponse"></a>
<a id="tocsretrieveachinstrumentresponse"></a>

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "modified_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "account_type": "savings",
    "account_number": "4099999992",
    "bank_code": "211370545",
    "currency": "USD",
    "country": "US"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Smith Enterprises",
    "type": "individual"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers.|
|created_on|string(date-time)|true|none|The date and time the instrument was created.|
|modified_on|string(date-time)|true|none|The date and time the instrument was last modified.|
|vault_id|string|true|none|The Vault ID currently attached to the instrument.|
|instrument_data|object|true|none|The details of the bank account|
|» account_type|string|true|none|The type of Direct Debit account|
|» account_number|string|true|none|The account number of the Direct Debit account|
|» bank_code|string|true|none|The bank code of the Direct Debit account|
|» currency|string|true|none|The currency of the account|
|» country|string|true|none|The country of the account|
|account_holder|object|true|none|The account holder details|
|» first_name|string|true|none|First name. Required for individual account holder type|
|» last_name|string|true|none|Last name. Required for individual account holder type|
|» company_name|string|true|none|Company name. Required for corporate account holder type|
|» type|string|true|none|Account holder type|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|checking|
|type|individual|
|type|corporate|

<h2 id="tocS_RetrieveBacsInstrumentResponse">RetrieveBacsInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievebacsinstrumentresponse"></a>
<a id="schema_RetrieveBacsInstrumentResponse"></a>
<a id="tocSretrievebacsinstrumentresponse"></a>
<a id="tocsretrievebacsinstrumentresponse"></a>

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "modified_on": "2021-01-01T00:00:00Z",
  "account": {
    "client_id": "cli_memowvltf7aulpb3poehtiffei",
    "processing_channel_id": "pc_jcs4ufa6hrgepcrvhic4bfspay"
  },
  "validations": [
    {}
  ],
  "instrument_data": {
    "account_number": "86753246",
    "bank_code": "040004",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "Recurring",
    "allow_partial_match": true,
    "status": "INVALID",
    "match_status": "no match",
    "description": "The name did not match with the account owner.",
    "mandate_id": "6PZ6KFI3KW3UFHAM3J"
  },
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "company_name": "string",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "type": "corporate"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers.|
|created_on|string(date-time)|true|none|The date and time the instrument was created.|
|vault_id|string|true|none|The Vault ID currently attached to the instrument.|
|modified_on|string(date-time)|false|none|The date and time the instrument was last modified.|
|account|object|false|none|The account configuration for the instrument.|
|» client_id|string|false|none|The ID of the client associated with the instrument.|
|» processing_channel_id|string|false|none|The ID of the processing channel associated with the instrument.|
|validations|[object]|false|none|The list of validations performed on the instrument.|
|instrument_data|object|false|none|The details of the Bacs Direct Debit account.|
|» account_number|string|true|none|The account number of the Bacs Direct Debit account.|
|» bank_code|string|true|none|The sort code of the Bacs Direct Debit account.|
|» country|string|true|none|The country of the account, as an ISO 3166-1 alpha-2 code.|
|» currency|string|true|none|The currency of the account.|
|» payment_type|string|true|none|The type of payment.|
|» allow_partial_match|boolean|false|none|Whether vault accepted a partial match when looking up the Bacs instrument for the supplied account details.|
|» status|string|false|none|The validation status of the account.|
|» match_status|string|false|none|The result of matching the account holder name against the account owner.|
|» description|string|false|none|A human-readable description of the validation result.|
|» mandate_id|string|false|none|The identifier of the Bacs Direct Debit mandate.|
|account_holder|object|false|none|The account holder's details.|
|» first_name|string|true|none|The first name of the account holder.|
|» last_name|string|true|none|The last name of the account holder.|
|» company_name|string|false|none|The legal name of a registered company that holds the account.|
|» billing_address|object|true|none|The billing address of the account holder.|
|»» address_line1|string|false|none|The first line of the address.|
|»» address_line2|string|false|none|The second line of the address.|
|»» city|string|false|none|The address city.|
|»» zip|string|false|none|The address ZIP or postal code.|
|»» country|string|true|none|The address country.|
|» type|string|false|none|The type of account holder.|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Recurring|
|payment_type|Regular|
|type|individual|
|type|corporate|

<h2 id="tocS_RetrieveBankAccountInstrumentResponse">RetrieveBankAccountInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievebankaccountinstrumentresponse"></a>
<a id="schema_RetrieveBankAccountInstrumentResponse"></a>
<a id="tocSretrievebankaccountinstrumentresponse"></a>
<a id="tocsretrievebankaccountinstrumentresponse"></a>

```json
{
  "type": "string",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|
|account_type|string|false|none|The type of account|
|account_number|string|false|none|Number (which can contain letters) that identifies the account|
|bank_code|string|false|none|Code that identifies the bank|
|branch_code|string|false|none|Code that identifies the bank branch|
|iban|string|false|none|Internationally agreed standard for identifying bank account|
|bban|string|false|none|The combination of bank code and/or branch code and account number|
|swift_bic|string|false|none|8 or 11 character code which identifies the bank or bank branch|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the account's currency|
|country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of where the account is based|
|account_holder|[AccountHolder](#schemaaccountholder)|false|none|The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).|
|bank|[BankDetails](#schemabankdetails)|false|none|Details of the bank|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|current|
|account_type|cash|

<h2 id="tocS_RetrieveCardInstrumentResponse">RetrieveCardInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievecardinstrumentresponse"></a>
<a id="schema_RetrieveCardInstrumentResponse"></a>
<a id="tocSretrievecardinstrumentresponse"></a>
<a id="tocsretrievecardinstrumentresponse"></a>

```json
{
  "type": "card",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "John Test",
  "scheme": "VISA",
  "scheme_local": "cartes_bancaires",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "network_token": {
    "id": "nt_y3oqhf46pyzuxjbcn2giaqnb44",
    "state": "active"
  },
  "card_wallet_type": "googlepay",
  "regulated_indicator": true
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|encrypted_card_number|string|false|none|The JWE-encrypted full card number. This is only present if your level of PCI compliance is SAQ-D.|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|The expiry year|
|name|string|false|none|The name of the cardholder|
|scheme|string|false|none|The card scheme|
|scheme_local|string|false|none|The local co-branded card scheme|
|last4|string|true|none|The last four digits of the card number|
|bin|string|false|none|The card issuer's bank identification number (BIN)|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank">two-letter ISO code</a>)|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|
|account_holder|object|false|none|The account holder details|
|» first_name|string|false|none|The first name of the account holder|
|» last_name|string|false|none|The last name of the account holder|
|» billing_address|[Address](#schemaaddress)|false|none|The billing address of the account holder|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the account holder|
|network_token|[NetworkToken](#schemanetworktoken)|false|none|Network token details|
|card_wallet_type|string|false|none|The type of digital wallet used for the card.|
|regulated_indicator|boolean|true|none|Indicates whether the instrument is regulated debit.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme_local|cartes_bancaires|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|card_wallet_type|googlepay|
|card_wallet_type|applepay|

<h2 id="tocS_RetrieveInstrumentResponse">RetrieveInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrieveinstrumentresponse"></a>
<a id="schema_RetrieveInstrumentResponse"></a>
<a id="tocSretrieveinstrumentresponse"></a>
<a id="tocsretrieveinstrumentresponse"></a>

```json
{
  "type": "string",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

The response for type of instrument stored

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveBankAccountInstrumentResponse](#schemaretrievebankaccountinstrumentresponse)|false|none|Bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveCardInstrumentResponse](#schemaretrievecardinstrumentresponse)|false|none|card instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveSepaInstrumentResponse](#schemaretrievesepainstrumentresponse)|false|none|SEPA instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveAchInstrumentResponse](#schemaretrieveachinstrumentresponse)|false|none|ach instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[RetrieveBacsInstrumentResponse](#schemaretrievebacsinstrumentresponse)|false|none|Bacs Direct Debit instrument response|

<h2 id="tocS_RetrieveSepaInstrumentResponse">RetrieveSepaInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrievesepainstrumentresponse"></a>
<a id="schema_RetrieveSepaInstrumentResponse"></a>
<a id="tocSretrievesepainstrumentresponse"></a>
<a id="tocsretrievesepainstrumentresponse"></a>

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "created_on": "2021-01-01T00:00:00Z",
  "modified_on": "2021-01-01T00:00:00Z",
  "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
  "instrument_data": {
    "type": "B2B",
    "account_number": "FR2810096000509685512959O86",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "recurring",
    "mandate_id": "1234567890",
    "date_of_signature": "2021-01-01"
  },
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "company_name": "string",
    "type": "corporate"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "default": true
  }
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers.|
|created_on|string(date-time)|true|none|The date and time the instrument was created.|
|modified_on|string(date-time)|true|none|The date and time the instrument was last modified.|
|vault_id|string|true|none|The Vault ID currently attached to the instrument.|
|instrument_data|object|false|none|The details of the SEPA mandate.|
|» type|string|false|none|The type of mandate.|
|» account_number|string|true|none|The International Bank Account Number (IBAN) of the account.|
|» country|string|true|none|The country of the account.|
|» currency|string|true|none|The currency of the account.|
|» payment_type|string|true|none|The type of payment.|
|» mandate_id|string|true|none|The mandate ID.<br><br>If this value was not provided when the instrument was created, it may take up to five seconds for the generated mandate ID to be available.|
|» date_of_signature|string(date)|true|none|The date the mandate was signed.<br><br>If `mandate_id` was not provided when the instrument was created, it may take up to five seconds for the generated date of signature to be available.|
|account_holder|object|false|none|The account holder's details.|
|» first_name|string|true|none|The first name of the account holder.|
|» last_name|string|true|none|The last name of the account holder.|
|» billing_address|object|true|none|The billing address of the account holder.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|true|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» zip|string|true|none|The address ZIP or postal code.|
|»» country|string|true|none|The address country.|
|» company_name|string|false|none|The legal name of a registered company that holds the account.|
|» type|string|false|none|The type of account holder.|
|customer|[RetrieveInstrumentCustomerResponse](#schemaretrieveinstrumentcustomerresponse)|false|none|Stored customer details|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Core|
|type|B2B|
|payment_type|recurring|
|payment_type|regular|
|type|individual|
|type|corporate|

<h2 id="tocS_StoreAchInstrumentRequest">StoreAchInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastoreachinstrumentrequest"></a>
<a id="schema_StoreAchInstrumentRequest"></a>
<a id="tocSstoreachinstrumentrequest"></a>
<a id="tocsstoreachinstrumentrequest"></a>

```json
{
  "type": "ach",
  "instrument_data": {
    "account_type": "savings",
    "account_number": "4099999992",
    "bank_code": "211370545",
    "currency": "USD",
    "country": "US"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Smith Enterprises",
    "type": "individual"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|false|none|The type of instrument. `ach` payment instruments.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[StoreInstrumentRequestType](#schemastoreinstrumentrequesttype)|false|none|Ordered list of store instrument request types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|instrument_data|object|true|none|The details of the bank account|
|» account_type|string|true|none|The type of Direct Debit account|
|» account_number|string|true|none|The account number of the Direct Debit account|
|» bank_code|string|true|none|The bank code of the Direct Debit account|
|» currency|string|true|none|The currency of the account|
|» country|string|true|none|The country of the account|
|account_holder|object|true|none|The account holder details|
|» first_name|string|true|none|First name. Required for individual account holder type|
|» last_name|string|true|none|Last name. Required for individual account holder type|
|» company_name|string|true|none|Company name. Required for corporate account holder type|
|» type|string|true|none|Account holder type|
|customer|[StoreCustomerInstrumentRequest](#schemastorecustomerinstrumentrequest)|false|none|The customer's details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|ach|
|account_type|savings|
|account_type|checking|
|type|individual|
|type|corporate|

<h2 id="tocS_StoreAchInstrumentResponse">StoreAchInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemastoreachinstrumentresponse"></a>
<a id="schema_StoreAchInstrumentResponse"></a>
<a id="tocSstoreachinstrumentresponse"></a>
<a id="tocsstoreachinstrumentresponse"></a>

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|ach|

<h2 id="tocS_StoreBacsInstrumentRequest">StoreBacsInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastorebacsinstrumentrequest"></a>
<a id="schema_StoreBacsInstrumentRequest"></a>
<a id="tocSstorebacsinstrumentrequest"></a>
<a id="tocsstorebacsinstrumentrequest"></a>

```json
{
  "type": "bacs",
  "account": {
    "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
  },
  "instrument_data": {
    "account_number": "86753246",
    "bank_code": "040004",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "Recurring",
    "allow_partial_match": false
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "Cloverfield St.",
      "address_line2": "23A",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of instrument. `bacs` payment instruments.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[StoreInstrumentRequestType](#schemastoreinstrumentrequesttype)|false|none|Ordered list of store instrument request types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account|object|true|none|The account configuration for the instrument.|
|» processing_channel_id|string|true|none|The ID of the processing channel to associate with the instrument.|
|instrument_data|object|true|none|The details of the Bacs Direct Debit account.|
|» account_number|string|true|none|The account number of the Bacs Direct Debit account.|
|» bank_code|string|true|none|The sort code of the Bacs Direct Debit account.|
|» country|string|true|none|The country of the account, as an ISO 3166-1 alpha-2 code.|
|» currency|string|true|none|The currency of the account.|
|» payment_type|string|true|none|The type of payment. `Recurring` or `Regular`.|
|» allow_partial_match|boolean|false|none|Indicates whether the Bacs instrument is created when account validation returns a partial match. When `true`, the instrument is created on a partial match; when `false`, instrument creation fails on a partial match.|
|account_holder|object|true|none|The account holder details|
|» first_name|string|true|none|The first name of the account holder|
|» last_name|string|true|none|The last name of the account holder|
|» billing_address|object|true|none|The billing address of the account holder|
|»» address_line1|string|false|none|The first line of the address.|
|»» address_line2|string|false|none|The street number. If no number, pass "w/n".|
|»» city|string|false|none|The address city.|
|»» zip|string|false|none|The address zip/postal code.|
|»» country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|
|customer|[StoreCustomerInstrumentRequest](#schemastorecustomerinstrumentrequest)|false|none|The customer's details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bacs|
|payment_type|Recurring|
|payment_type|Regular|

<h2 id="tocS_StoreBacsInstrumentResponse">StoreBacsInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemastorebacsinstrumentresponse"></a>
<a id="schema_StoreBacsInstrumentResponse"></a>
<a id="tocSstorebacsinstrumentresponse"></a>
<a id="tocsstorebacsinstrumentresponse"></a>

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bacs|

<h2 id="tocS_StoreBankAccountInstrumentRequest">StoreBankAccountInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastorebankaccountinstrumentrequest"></a>
<a id="schema_StoreBankAccountInstrumentRequest"></a>
<a id="tocSstorebankaccountinstrumentrequest"></a>
<a id="tocsstorebankaccountinstrumentrequest"></a>

```json
{
  "type": "bank_account",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "processing_channel_id": "pc_u2l6xz5joigedmk7g5vxzt7rqy",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|false|none|The type of instrument. `bank_account` payment instruments only support payouts.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[StoreInstrumentRequestType](#schemastoreinstrumentrequesttype)|false|none|Ordered list of store instrument request types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_type|string|false|none|The type of account|
|account_number|string|false|none|Number (which can contain letters) that identifies the account|
|bank_code|string|false|none|Code that identifies the bank|
|branch_code|string|false|none|Code that identifies the bank branch|
|iban|string|false|none|Internationally agreed standard for identifying bank account|
|bban|string|false|none|The combination of bank code and/or branch code and account number|
|swift_bic|string|false|none|8 or 11 character code which identifies the bank or bank branch|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the account's currency|
|country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of where the account is based|
|processing_channel_id|string|false|none|The ID of the primary processing channel this instrument is intended to be used for|
|account_holder|[AccountHolder](#schemaaccountholder)|false|none|The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).|
|bank|[BankDetails](#schemabankdetails)|false|none|Details of the bank|
|customer|[StoreCustomerInstrumentRequest](#schemastorecustomerinstrumentrequest)|false|none|The customer's details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bank_account|
|account_type|savings|
|account_type|current|
|account_type|cash|

<h2 id="tocS_StoreBankAccountInstrumentResponse">StoreBankAccountInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemastorebankaccountinstrumentresponse"></a>
<a id="schema_StoreBankAccountInstrumentResponse"></a>
<a id="tocSstorebankaccountinstrumentresponse"></a>
<a id="tocsstorebankaccountinstrumentresponse"></a>

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "swift_bic": "37040044",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "iban": "HU93116000060000000012345676"
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|
|customer|[CustomerResponse](#schemacustomerresponse)|false|none|Stored customer details|
|bank|[BankDetails](#schemabankdetails)|false|none|Details of the bank|
|swift_bic|string|false|none|8 or 11 character code which identifies the bank or bank branch|
|account_number|string|false|none|Number (which can contain letters) that identifies the account|
|bank_code|string|false|none|Code that identifies the bank|
|iban|string|false|none|Internationally agreed standard for identifying bank account|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bank_account|

<h2 id="tocS_StoreCardInstrumentRequest">StoreCardInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastorecardinstrumentrequest"></a>
<a id="schema_StoreCardInstrumentRequest"></a>
<a id="tocSstorecardinstrumentrequest"></a>
<a id="tocsstorecardinstrumentrequest"></a>

```json
{
  "type": "card",
  "number": "4242424242424242",
  "expiry_month": 5,
  "expiry_year": 2025,
  "name": "Mr. J Smith",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  },
  "entity_id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "processing_channel_id": "pc_u2l6xz5joigedmk7g5vxzt7rqy",
  "network_token": {
    "provision": true
  }
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|false|none|The type of instrument.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[StoreInstrumentRequestType](#schemastoreinstrumentrequesttype)|false|none|Ordered list of store instrument request types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number|string(pan)|true|none|The card number.|
|expiry_month|integer(int32)|true|none|The card's expiration month.|
|expiry_year|integer(int32)|true|none|The card's expiration year.|
|name|string|false|none|The cardholder's name.|
|account_holder|[StoreAccountHolderTokenRequest](#schemastoreaccountholdertokenrequest)|false|none|The account holder details|
|customer|[StoreCustomerInstrumentRequest](#schemastorecustomerinstrumentrequest)|false|none|The customer's details|
|entity_id|string|false|none|The client entity, used for billing purposes. <br><br>If you do not provide an `entity_id`, you must provide a `processing_channel_id` instead.|
|processing_channel_id|string|false|none|The processing channel, used for billing purposes. <br><br>If you do not provide a `processing_channel_id`, you must provide an `entity_id`  instead.|
|network_token|[ProvisionNetworkToken](#schemaprovisionnetworktoken)|false|none|Provision network token details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|

<h2 id="tocS_StoreCustomerInstrumentRequest">StoreCustomerInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastorecustomerinstrumentrequest"></a>
<a id="schema_StoreCustomerInstrumentRequest"></a>
<a id="tocSstorecustomerinstrumentrequest"></a>
<a id="tocsstorecustomerinstrumentrequest"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "email": "brucewayne@gmail.com",
  "name": "Bruce Wayne",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "default": true
}

```

The customer's details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The identifier of an existing customer|
|email|string(email)|false|none|An optional email address to associate with the customer|
|name|string|false|none|The customer's name. This will only set the name for *new* customers.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number. This will only set the phone number for *new* customers.|
|default|boolean|false|none|If true, this instrument will become the default for the customer. If a *new* customer is created as a result of this request, the instrument will automatically be the default.|

<h2 id="tocS_StoreInstrumentRequest">StoreInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastoreinstrumentrequest"></a>
<a id="schema_StoreInstrumentRequest"></a>
<a id="tocSstoreinstrumentrequest"></a>
<a id="tocsstoreinstrumentrequest"></a>

```json
{
  "type": "bank_account",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "processing_channel_id": "pc_u2l6xz5joigedmk7g5vxzt7rqy",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}

```

The type of instrument to be stored

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreBankAccountInstrumentRequest](#schemastorebankaccountinstrumentrequest)|false|none|Store bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreCardInstrumentRequest](#schemastorecardinstrumentrequest)|false|none|Details of the token to store.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreTokenInstrumentRequest](#schemastoretokeninstrumentrequest)|false|none|Store token details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreSepaInstrumentRequest](#schemastoresepainstrumentrequest)|false|none|Store bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreAchInstrumentRequest](#schemastoreachinstrumentrequest)|false|none|Store bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreBacsInstrumentRequest](#schemastorebacsinstrumentrequest)|false|none|Store Bacs Direct Debit account details|

<h2 id="tocS_StoreInstrumentRequestType">StoreInstrumentRequestType</h2>
<!-- backwards compatibility -->
<a id="schemastoreinstrumentrequesttype"></a>
<a id="schema_StoreInstrumentRequestType"></a>
<a id="tocSstoreinstrumentrequesttype"></a>
<a id="tocsstoreinstrumentrequesttype"></a>

```json
"bacs"

```

Ordered list of store instrument request types used for discriminators

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Ordered list of store instrument request types used for discriminators|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bacs|
|*anonymous*|bank_account|
|*anonymous*|card|
|*anonymous*|token|
|*anonymous*|sepa|
|*anonymous*|ach|

<h2 id="tocS_StoreInstrumentResponse">StoreInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemastoreinstrumentresponse"></a>
<a id="schema_StoreInstrumentResponse"></a>
<a id="tocSstoreinstrumentresponse"></a>
<a id="tocsstoreinstrumentresponse"></a>

```json
{
  "type": "bank_account",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "swift_bic": "37040044",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "iban": "HU93116000060000000012345676"
}

```

The response for type of instrument stored

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreBankAccountInstrumentResponse](#schemastorebankaccountinstrumentresponse)|false|none|Store bank account instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreTokenInstrumentResponse](#schemastoretokeninstrumentresponse)|false|none|card instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreSepaInstrumentResponse](#schemastoresepainstrumentresponse)|false|none|Store bank account instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreAchInstrumentResponse](#schemastoreachinstrumentresponse)|false|none|Store bank account instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[StoreBacsInstrumentResponse](#schemastorebacsinstrumentresponse)|false|none|Store Bacs Direct Debit account instrument response|

<h2 id="tocS_StoreSepaInstrumentRequest">StoreSepaInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastoresepainstrumentrequest"></a>
<a id="schema_StoreSepaInstrumentRequest"></a>
<a id="tocSstoresepainstrumentrequest"></a>
<a id="tocsstoresepainstrumentrequest"></a>

```json
{
  "type": "sepa",
  "instrument_data": {
    "type": "B2B",
    "account_number": "FR2810096000509685512959O86",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "recurring",
    "mandate_id": "1234567890",
    "date_of_signature": "2020-01-01"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "Cloverfield St.",
      "address_line2": "23A",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "company_name": "string",
    "type": "corporate"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|false|none|The type of instrument. `sepa` payment instruments.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[StoreInstrumentRequestType](#schemastoreinstrumentrequesttype)|false|none|Ordered list of store instrument request types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|instrument_data|object|true|none|The details of the mandate|
|» type|string|false|none|The type of mandate.|
|» account_number|string|true|none|The International Bank Account Number (IBAN) of the account.|
|» country|string|true|none|The country of the account.|
|» currency|string|true|none|The currency of the account.|
|» payment_type|string|true|none|The type of payment. `recurring` or `regular`.|
|» mandate_id|string|false|none|The mandate ID. If a mandate ID is not provided, a new, random mandate ID will be generated.|
|» date_of_signature|string(date)|false|none|The date on which the mandate was signed, in the format 'yyyy-MM-dd'.<br>Required if `mandate_id` is provided.<br>Ignored and set as the current date if `mandate_id` is not provided.|
|account_holder|object|true|none|The account holder details|
|» first_name|string|true|none|The first name of the account holder|
|» last_name|string|true|none|The last name of the account holder|
|» billing_address|object|true|none|The billing address of the account holder|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|true|none|The street number. If no number, pass "w/n".|
|»» city|string|true|none|The address city.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|
|» company_name|string|false|none|The legal name of a registered company that holds the account.|
|» type|string|false|none|The type of account holder.|
|customer|[StoreCustomerInstrumentRequest](#schemastorecustomerinstrumentrequest)|false|none|The customer's details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|sepa|
|type|Core|
|type|B2B|
|payment_type|recurring|
|payment_type|regular|
|type|individual|
|type|corporate|

<h2 id="tocS_StoreSepaInstrumentResponse">StoreSepaInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemastoresepainstrumentresponse"></a>
<a id="schema_StoreSepaInstrumentResponse"></a>
<a id="tocSstoresepainstrumentresponse"></a>
<a id="tocsstoresepainstrumentresponse"></a>

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|sepa|

<h2 id="tocS_StoreTokenInstrumentRequest">StoreTokenInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemastoretokeninstrumentrequest"></a>
<a id="schema_StoreTokenInstrumentRequest"></a>
<a id="tocSstoretokeninstrumentrequest"></a>
<a id="tocsstoretokeninstrumentrequest"></a>

```json
{
  "type": "token",
  "token": "tok_asoto22g2fsu7prwomy12sgfsa",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "default": true
  }
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of instrument|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[StoreInstrumentRequestType](#schemastoreinstrumentrequesttype)|false|none|Ordered list of store instrument request types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The Checkout.com token|
|account_holder|[StoreAccountHolderTokenRequest](#schemastoreaccountholdertokenrequest)|false|none|The account holder details|
|customer|[StoreCustomerInstrumentRequest](#schemastorecustomerinstrumentrequest)|false|none|The customer's details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|token|

<h2 id="tocS_StoreTokenInstrumentResponse">StoreTokenInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemastoretokeninstrumentresponse"></a>
<a id="schema_StoreTokenInstrumentResponse"></a>
<a id="tocSstoretokeninstrumentresponse"></a>
<a id="tocsstoretokeninstrumentresponse"></a>

```json
{
  "type": "card",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "scheme_local": "cartes_bancaires",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "network_token": {
    "id": "nt_y3oqhf46pyzuxjbcn2giaqnb44",
    "state": "active"
  }
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|The expiry year|
|scheme|string|false|none|The card scheme|
|scheme_local|string|false|none|The local co-branded card scheme|
|last4|string|true|none|The last four digits of the card number|
|bin|string|true|none|The card issuer's bank identification number (BIN)|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank">two-letter ISO code</a>)|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|account_holder|[AccountHolderResponse](#schemaaccountholderresponse)|false|none|The account holder details|
|customer|[CustomerResponse](#schemacustomerresponse)|false|none|Stored customer details|
|network_token|[NetworkToken](#schemanetworktoken)|false|none|Network token details|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|
|scheme_local|cartes_bancaires|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_category|CONSUMER|
|card_category|COMMERCIAL|

<h2 id="tocS_UpdateAchInstrumentRequest">UpdateAchInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdateachinstrumentrequest"></a>
<a id="schema_UpdateAchInstrumentRequest"></a>
<a id="tocSupdateachinstrumentrequest"></a>
<a id="tocsupdateachinstrumentrequest"></a>

```json
{
  "type": "string",
  "instrument_data": {
    "account_type": "savings",
    "account_number": "4099999992",
    "bank_code": "211370545",
    "currency": "USD",
    "country": "US"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Smith Enterprises",
    "type": "individual"
  }
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of instrument. `ach` payment instruments.|
|instrument_data|object|false|none|The details of the bank account|
|» account_type|string|false|none|The type of Direct Debit account|
|» account_number|string|false|none|The account number of the Direct Debit account|
|» bank_code|string|false|none|The bank code of the Direct Debit account|
|» currency|string|false|none|The currency of the account|
|» country|string|false|none|The country of the account|
|account_holder|object|false|none|The account holder details|
|» first_name|string|true|none|First name. Required for individual account holder type|
|» last_name|string|true|none|Last name. Required for individual account holder type|
|» company_name|string|true|none|Company name. Required for corporate account holder type|
|» type|string|true|none|Account holder type|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|checking|
|type|individual|
|type|corporate|

<h2 id="tocS_UpdateAchInstrumentResponse">UpdateAchInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaupdateachinstrumentresponse"></a>
<a id="schema_UpdateAchInstrumentResponse"></a>
<a id="tocSupdateachinstrumentresponse"></a>
<a id="tocsupdateachinstrumentresponse"></a>

```json
{
  "type": "ach",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type. For instruments created from Checkout.com tokens, this will reflect the type of instrument that was tokenized.|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|ach|

<h2 id="tocS_UpdateBacsInstrumentRequest">UpdateBacsInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatebacsinstrumentrequest"></a>
<a id="schema_UpdateBacsInstrumentRequest"></a>
<a id="tocSupdatebacsinstrumentrequest"></a>
<a id="tocsupdatebacsinstrumentrequest"></a>

```json
{
  "type": "string",
  "instrument_data": {
    "account_number": "86753246",
    "bank_code": "040004",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "Recurring",
    "allow_partial_match": true
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "string",
    "billing_address": {
      "address_line1": "Cloverfield St.",
      "address_line2": "23A",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "type": "corporate"
  }
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of instrument. `bacs` payment instruments.|
|instrument_data|object|false|none|The details of the Bacs Direct Debit account.|
|» account_number|string|false|none|The account number of the Bacs Direct Debit account.|
|» bank_code|string|false|none|The sort code of the Bacs Direct Debit account.|
|» country|string|false|none|The country of the account, as an ISO 3166-1 alpha-2 code.|
|» currency|string|false|none|The currency of the account.|
|» payment_type|string|false|none|The type of payment. `Recurring` or `Regular`.|
|» allow_partial_match|boolean|false|none|Whether vault accepted a partial match when looking up the Bacs instrument for the supplied account details.|
|account_holder|object|false|none|The account holder details|
|» first_name|string|false|none|The first name of the account holder|
|» last_name|string|false|none|The last name of the account holder|
|» company_name|string|false|none|The legal name of a registered company that holds the account.|
|» billing_address|object|false|none|The billing address of the account holder|
|»» address_line1|string|false|none|The first line of the address.|
|»» address_line2|string|false|none|The street number. If no number, pass "w/n".|
|»» city|string|false|none|The address city.|
|»» zip|string|false|none|The address zip/postal code.|
|»» country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|
|» type|string|false|none|The type of account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Recurring|
|payment_type|Regular|
|type|individual|
|type|corporate|

<h2 id="tocS_UpdateBacsInstrumentResponse">UpdateBacsInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaupdatebacsinstrumentresponse"></a>
<a id="schema_UpdateBacsInstrumentResponse"></a>
<a id="tocSupdatebacsinstrumentresponse"></a>
<a id="tocsupdatebacsinstrumentresponse"></a>

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type. For instruments created from Checkout.com tokens, this will reflect the type of instrument that was tokenized.|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bacs|

<h2 id="tocS_UpdateBankInstrumentRequest">UpdateBankInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatebankinstrumentrequest"></a>
<a id="schema_UpdateBankInstrumentRequest"></a>
<a id="tocSupdatebankinstrumentrequest"></a>
<a id="tocsupdatebankinstrumentrequest"></a>

```json
{
  "type": "string",
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "currency": "GBP",
  "country": "GB",
  "processing_channel_id": "pc_u2l6xz5joigedmk7g5vxzt7rqy",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "default": true
  }
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of instrument. `bank_account` payment instruments.|
|account_type|string|false|none|The type of account|
|account_number|string|false|none|Number (which can contain letters) that identifies the account|
|bank_code|string|false|none|Code that identifies the bank|
|branch_code|string|false|none|Code that identifies the bank branch|
|iban|string|false|none|Internationally agreed standard for identifying bank account|
|bban|string|false|none|The combination of bank code and/or branch code and account number|
|swift_bic|string|false|none|8 or 11 character code which identifies the bank or bank branch|
|currency|string|false|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the account's currency|
|country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of where the account is based|
|processing_channel_id|string|false|none|The ID of the primary processing channel this instrument is intended to be used for|
|account_holder|[AccountHolder](#schemaaccountholder)|false|none|The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).|
|bank|[BankDetails](#schemabankdetails)|false|none|Details of the bank|
|customer|[UpdateCustomerRequest](#schemaupdatecustomerrequest)|false|none|The customer's details|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|current|
|account_type|cash|

<h2 id="tocS_UpdateBankInstrumentResponse">UpdateBankInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaupdatebankinstrumentresponse"></a>
<a id="schema_UpdateBankInstrumentResponse"></a>
<a id="tocSupdatebankinstrumentresponse"></a>
<a id="tocsupdatebankinstrumentresponse"></a>

```json
{
  "type": "bank_account",
  "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bank_account|

<h2 id="tocS_UpdateCardInstrumentRequest">UpdateCardInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatecardinstrumentrequest"></a>
<a id="schema_UpdateCardInstrumentRequest"></a>
<a id="tocSupdatecardinstrumentrequest"></a>
<a id="tocsupdatecardinstrumentrequest"></a>

```json
{
  "type": "string",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Mr. J Smith",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "default": true
  }
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of instrument. `card` payment instruments.|
|expiry_month|integer|false|none|The expiry month of the card|
|expiry_year|integer|false|none|The expiry year of the card|
|name|string|false|none|Name of the cardholder|
|account_holder|[UpdateCardAccountHolder](#schemaupdatecardaccountholder)|false|none|The account holder details|
|customer|[UpdateCustomerRequest](#schemaupdatecustomerrequest)|false|none|The customer's details|

<h2 id="tocS_UpdateCardInstrumentResponse">UpdateCardInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaupdatecardinstrumentresponse"></a>
<a id="schema_UpdateCardInstrumentResponse"></a>
<a id="tocSupdatecardinstrumentresponse"></a>
<a id="tocsupdatecardinstrumentresponse"></a>

```json
{
  "type": "card",
  "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|

<h2 id="tocS_UpdateInstrumentRequest">UpdateInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdateinstrumentrequest"></a>
<a id="schema_UpdateInstrumentRequest"></a>
<a id="tocSupdateinstrumentrequest"></a>
<a id="tocsupdateinstrumentrequest"></a>

```json
{
  "type": "string",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Mr. J Smith",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "default": true
  }
}

```

The type of instrument to be updated

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateCardInstrumentRequest](#schemaupdatecardinstrumentrequest)|false|none|Update bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateBankInstrumentRequest](#schemaupdatebankinstrumentrequest)|false|none|Update bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateSepaInstrumentRequest](#schemaupdatesepainstrumentrequest)|false|none|Update bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateAchInstrumentRequest](#schemaupdateachinstrumentrequest)|false|none|Update bank account details|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateBacsInstrumentRequest](#schemaupdatebacsinstrumentrequest)|false|none|Update Bacs Direct Debit account details|

<h2 id="tocS_UpdateInstrumentResponse">UpdateInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaupdateinstrumentresponse"></a>
<a id="schema_UpdateInstrumentResponse"></a>
<a id="tocSupdateinstrumentresponse"></a>
<a id="tocsupdateinstrumentresponse"></a>

```json
{
  "type": "card",
  "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
}

```

The response for type of instrument stored

### Properties

oneOf - discriminator: UpdateCardInstrumentResponse.type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateCardInstrumentResponse](#schemaupdatecardinstrumentresponse)|false|none|The response for type of instrument stored|

xor - discriminator: UpdateBankInstrumentResponse.type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateBankInstrumentResponse](#schemaupdatebankinstrumentresponse)|false|none|The response for type of instrument stored|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateSepaInstrumentResponse](#schemaupdatesepainstrumentresponse)|false|none|Update bank account instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateAchInstrumentResponse](#schemaupdateachinstrumentresponse)|false|none|Update bank account instrument response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UpdateBacsInstrumentResponse](#schemaupdatebacsinstrumentresponse)|false|none|Update Bacs Direct Debit account instrument response|

<h2 id="tocS_UpdateSepaInstrumentRequest">UpdateSepaInstrumentRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatesepainstrumentrequest"></a>
<a id="schema_UpdateSepaInstrumentRequest"></a>
<a id="tocSupdatesepainstrumentrequest"></a>
<a id="tocsupdatesepainstrumentrequest"></a>

```json
{
  "type": "string",
  "instrument_data": {
    "type": "B2B",
    "account_number": "FR2810096000509685512959O86",
    "country": "GB",
    "currency": "GBP",
    "payment_type": "recurring",
    "mandate_id": "1234567890",
    "date_of_signature": "2020-01-01"
  },
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith",
    "billing_address": {
      "address_line1": "Cloverfield St.",
      "address_line2": "23A",
      "city": "London",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "company_name": "string",
    "type": "corporate"
  }
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of instrument. `sepa` payment instruments.|
|instrument_data|object|false|none|The details of the mandate|
|» type|string|false|none|The type of mandate.|
|» account_number|string|true|none|The International Bank Account Number (IBAN) of the account.|
|» country|string|true|none|The country of the account.|
|» currency|string|true|none|The currency of the account.|
|» payment_type|string|true|none|The type of payment. `recurring` or `regular`.|
|» mandate_id|string|false|none|The mandate ID. If a mandate ID is not provided, a new, random mandate ID will be generated.|
|» date_of_signature|string(date)|false|none|The date on which the mandate was signed, in the format 'yyyy-MM-dd'.<br>Required if `mandate_id` is provided.<br>Ignored and set as the current date if `mandate_id` is not provided.|
|account_holder|object|false|none|The account holder details|
|» first_name|string|true|none|The first name of the account holder|
|» last_name|string|true|none|The last name of the account holder|
|» billing_address|object|true|none|The billing address of the account holder|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|true|none|The street number. If no number, pass "w/n".|
|»» city|string|true|none|The address city.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address.|
|» company_name|string|false|none|The legal name of a registered company that holds the account.|
|» type|string|false|none|The type of account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Core|
|type|B2B|
|payment_type|recurring|
|payment_type|regular|
|type|individual|
|type|corporate|

<h2 id="tocS_UpdateSepaInstrumentResponse">UpdateSepaInstrumentResponse</h2>
<!-- backwards compatibility -->
<a id="schemaupdatesepainstrumentresponse"></a>
<a id="schema_UpdateSepaInstrumentResponse"></a>
<a id="tocSupdatesepainstrumentresponse"></a>
<a id="tocsupdatesepainstrumentresponse"></a>

```json
{
  "type": "sepa",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The underlying instrument type. For instruments created from Checkout.com tokens, this will reflect the type of instrument that was tokenized.|
|id|string|true|none|The unique identifier of the payment source or destination that can be used later for payments|
|fingerprint|string|true|none|A token that can uniquely identify this instrument across all customers|

#### Enumerated Values

|Property|Value|
|---|---|
|type|sepa|

<h2 id="tocS_IPAddress">IPAddress</h2>
<!-- backwards compatibility -->
<a id="schemaipaddress"></a>
<a id="schema_IPAddress"></a>
<a id="tocSipaddress"></a>
<a id="tocsipaddress"></a>

```json
"90.197.169.245"

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(ipv4)|false|none|none|

<h2 id="tocS_add-cardholder-request">add-cardholder-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-cardholder-request"></a>
<a id="schema_add-cardholder-request"></a>
<a id="tocSadd-cardholder-request"></a>
<a id="tocsadd-cardholder-request"></a>

```json
{
  "type": "individual",
  "reference": "X-123456-N11",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-15",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}

```

The cardholder to create.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of cardholder to create.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|

<h2 id="tocS_add-cardholder-response">add-cardholder-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-cardholder-response"></a>
<a id="schema_add-cardholder-response"></a>
<a id="tocSadd-cardholder-response"></a>
<a id="tocsadd-cardholder-response"></a>

```json
{
  "id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "type": "individual",
  "status": "active",
  "reference": "X-123456-N11",
  "created_date": "2019-08-24T14:15:22Z",
  "last_modified_date": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "cards": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|type|string|true|none|The cardholder's type.|
|status|string|true|none|The cardholder's status, after creation.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|created_date|string(date-time)|false|none|none|
|last_modified_date|string(date-time)|false|none|none|
|_links|[IssuingCardholderLinks](#schemaissuingcardholderlinks)|true|none|The links related to the current cardholder.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|status|active|
|status|pending|
|status|restricted|
|status|requirements_due|
|status|inactive|
|status|rejected|

<h2 id="tocS_add-individual-cardholder-request">add-individual-cardholder-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-individual-cardholder-request"></a>
<a id="schema_add-individual-cardholder-request"></a>
<a id="tocSadd-individual-cardholder-request"></a>
<a id="tocsadd-individual-cardholder-request"></a>

```json
{
  "type": "individual",
  "reference": "X-123456-N11",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-15",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of cardholder to create.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|first_name|string|true|none|The cardholder's first name.|
|middle_name|string|false|none|The cardholder's middle name.|
|last_name|string|true|none|The cardholder's last name.|
|email|[IssuingEmail](#schemaissuingemail)|false|none|The cardholder's email address.|
|phone_number|[IssuingPhoneNumber](#schemaissuingphonenumber)|false|none|The cardholder's mobile phone number. This is used in the card tokenization one-time passcode (OTP) challenge flow and in delivery details for physical cards.|
|date_of_birth|string(date)|false|none|The cardholder's date of birth. <br/>Format – `YYYY-MM-DD`|
|billing_address|[IssuingAddress](#schemaissuingaddress)|true|none|The cardholder's billing address.|
|residency_address|[IssuingAddress](#schemaissuingaddress)|false|none|The cardholder's residential address. If this value is not provided, the cardholder's billing address is used instead, by default.|

<h2 id="tocS_get-cardholder-response">get-cardholder-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-cardholder-response"></a>
<a id="schema_get-cardholder-response"></a>
<a id="tocSget-cardholder-response"></a>
<a id="tocsget-cardholder-response"></a>

```json
{
  "id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "type": "individual",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-28",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "reference": "X-123456-N11",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "account_entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "parent_sub_entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "status": "active",
  "created_date": "2019-09-10T10:11:12Z",
  "last_modified_date": "2019-09-11T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "cards": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

*None*

<h2 id="tocS_IssuingCardholder">IssuingCardholder</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcardholder"></a>
<a id="schema_IssuingCardholder"></a>
<a id="tocSissuingcardholder"></a>
<a id="tocsissuingcardholder"></a>

```json
{
  "id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "type": "individual",
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "email": "john.kennedy@myemaildomain.com",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "date_of_birth": "1985-05-28",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "reference": "X-123456-N11",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "account_entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "parent_sub_entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "status": "active",
  "created_date": "2019-09-10T10:11:12Z",
  "last_modified_date": "2019-09-11T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "cards": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|type|string|true|none|The cardholder type. Currently `individual` is the only supported value.|
|first_name|string|true|none|The cardholder's first name.|
|middle_name|string|false|none|The cardholder's middle name.|
|last_name|string|true|none|The cardholder's last name.|
|email|[IssuingEmail](#schemaissuingemail)|false|none|The cardholder's email address.|
|phone_number|[IssuingPhoneNumber](#schemaissuingphonenumber)|false|none|The cardholder's mobile phone number. This is used in the card tokenization one-time passcode (OTP) challenge flow and in delivery details for physical cards.|
|date_of_birth|string(date)|false|none|The cardholder's date of birth. <br/>Format – `YYYY-MM-DD`|
|billing_address|[IssuingAddress](#schemaissuingaddress)|true|none|The cardholder's billing address.|
|residency_address|[IssuingAddress](#schemaissuingaddress)|false|none|The cardholder's residential address. If this value is not provided, the cardholder's billing address is used instead, by default.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|account_entity_id|[IssuingEntityId](#schemaissuingentityid)|false|none|The unique identifier of the entity that holds the cardholder's currency account.|
|parent_sub_entity_id|[IssuingEntityId](#schemaissuingentityid)|false|none|The unique identifier of the cardholder's parent sub-entity, if they have one.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The unique identifier of the cardholder's root client entity.|
|status|string|false|none|The cardholder's status.|
|created_date|string(date-time)|false|none|none|
|last_modified_date|string(date-time)|false|none|none|
|_links|[IssuingCardholderLinks](#schemaissuingcardholderlinks)|false|none|The links related to the current cardholder.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|active|
|status|pending|
|status|restricted|
|status|requirements_due|
|status|inactive|
|status|rejected|
|status|draft|
|status|suspended|

<h2 id="tocS_IssuingCardholderLinks">IssuingCardholderLinks</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcardholderlinks"></a>
<a id="schema_IssuingCardholderLinks"></a>
<a id="tocSissuingcardholderlinks"></a>
<a id="tocsissuingcardholderlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "cards": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the current cardholder.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the cardholder|
|cards|[IssuingLink](#schemaissuinglink)|false|none|The URI to add or retrieve the cards issued to the cardholder|

<h2 id="tocS_IssuingUpdateCardholderLinks">IssuingUpdateCardholderLinks</h2>
<!-- backwards compatibility -->
<a id="schemaissuingupdatecardholderlinks"></a>
<a id="schema_IssuingUpdateCardholderLinks"></a>
<a id="tocSissuingupdatecardholderlinks"></a>
<a id="tocsissuingupdatecardholderlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the current cardholder.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|none|

<h2 id="tocS_update-cardholder-request">update-cardholder-request</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-cardholder-request"></a>
<a id="schema_update-cardholder-request"></a>
<a id="tocSupdate-cardholder-request"></a>
<a id="tocsupdate-cardholder-request"></a>

```json
{
  "first_name": "John",
  "middle_name": "Fitzgerald",
  "last_name": "Kennedy",
  "date_of_birth": "1985-05-15",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "email": "john.kennedy@myemaildomain.com",
  "billing_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "residency_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  }
}

```

The cardholder's fields to update.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The cardholder's first name.|
|middle_name|string|false|none|The cardholder's middle name. To set this field to null, pass `null` in your request.|
|last_name|string|false|none|The cardholder's last name.|
|date_of_birth|string(date)|false|none|The cardholder's date of birth in the YYYY-MM-DD format. To set this field to null, pass `null` in your request.|
|phone_number|[IssuingPhoneNumber](#schemaissuingphonenumber)|false|none|The cardholder's mobile phone number. This is used in the card tokenization one-time passcode (OTP) challenge flow and in delivery details for physical cards.|
|email|[IssuingEmail](#schemaissuingemail)|false|none|The cardholder's email address. To set this field to null, pass `null` in your request.|
|billing_address|[IssuingAddress](#schemaissuingaddress)|false|none|The  cardholder's billing address.|
|residency_address|[IssuingAddress](#schemaissuingaddress)|false|none|The cardholder's residency address. To set this field to null, pass `null` in your request.|

<h2 id="tocS_update-cardholder-response">update-cardholder-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-cardholder-response"></a>
<a id="schema_update-cardholder-response"></a>
<a id="tocSupdate-cardholder-response"></a>
<a id="tocsupdate-cardholder-response"></a>

```json
{
  "last_modified_date": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|last_modified_date|string(date-time)|true|none|none|
|_links|[IssuingUpdateCardholderLinks](#schemaissuingupdatecardholderlinks)|true|none|The links related to the current cardholder.|

<h2 id="tocS_3ds-enrollment-get-response">3ds-enrollment-get-response</h2>
<!-- backwards compatibility -->
<a id="schema3ds-enrollment-get-response"></a>
<a id="schema_3ds-enrollment-get-response"></a>
<a id="tocS3ds-enrollment-get-response"></a>
<a id="tocs3ds-enrollment-get-response"></a>

```json
{
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "security_question": {
    "question": "****",
    "answer": "****"
  },
  "password": "string",
  "created_date": "2019-09-10T10:11:12Z",
  "last_modified_date": "2019-09-11T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

The card's 3DS enrollment details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|locale|[3dsLocale](#schema3dslocale)|true|none|The card's locale, as one of the possible BCP 47 formatted enum values. <br><br>The locale determines the language that text messages and 3DS challenge prompts are displayed to the user in, as well as the format used for amounts and dates.<br><br>When not provided, the locale of the card product is used.|
|phone_number|[3dsPhoneNumber](#schema3dsphonenumber)|true|none|The phone number to send the one-time password (OTP) for 3DS authentication to.<br><br>This phone number is independent of the cardholder's mobile phone number on file.<br>The number is used for authorizations that require a <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure">3DS challenge</a>.|
|security_question|object|false|none|Obfuscated security question and answer, indicating that this card was enrolled using this method.|
|» question|string|false|none|none|
|» answer|string|false|none|none|
|password|string|false|none|Obfuscated password, indicating that this card was enrolled using this method.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|
|_links|[3dsLink](#schema3dslink)|false|none|The link to the card's 3DS enrollment details.|

<h2 id="tocS_3ds-enrollment-patch-response">3ds-enrollment-patch-response</h2>
<!-- backwards compatibility -->
<a id="schema3ds-enrollment-patch-response"></a>
<a id="schema_3ds-enrollment-patch-response"></a>
<a id="tocS3ds-enrollment-patch-response"></a>
<a id="tocs3ds-enrollment-patch-response"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

The card's 3DS authentication details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[3dsLink](#schema3dslink)|false|none|The link to the card's 3DS enrollment details.|

<h2 id="tocS_3ds-enrollment-post-response">3ds-enrollment-post-response</h2>
<!-- backwards compatibility -->
<a id="schema3ds-enrollment-post-response"></a>
<a id="schema_3ds-enrollment-post-response"></a>
<a id="tocS3ds-enrollment-post-response"></a>
<a id="tocs3ds-enrollment-post-response"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

The card's 3DS authentication details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[3dsLink](#schema3dslink)|false|none|The link to the card's 3DS enrollment details.|

<h2 id="tocS_3dsLink">3dsLink</h2>
<!-- backwards compatibility -->
<a id="schema3dslink"></a>
<a id="schema_3dsLink"></a>
<a id="tocS3dslink"></a>
<a id="tocs3dslink"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The link to the card's 3DS enrollment details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's 3DS enrollment details.|

<h2 id="tocS_3dsLocale">3dsLocale</h2>
<!-- backwards compatibility -->
<a id="schema3dslocale"></a>
<a id="schema_3dsLocale"></a>
<a id="tocS3dslocale"></a>
<a id="tocs3dslocale"></a>

```json
"en-US"

```

The card's locale, as one of the possible BCP 47 formatted enum values. 

The locale determines the language that text messages and 3DS challenge prompts are displayed to the user in, as well as the format used for amounts and dates.

When not provided, the locale of the card product is used. 

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(language-COUNTRY)|false|none|The card's locale, as one of the possible BCP 47 formatted enum values. <br><br>The locale determines the language that text messages and 3DS challenge prompts are displayed to the user in, as well as the format used for amounts and dates.<br><br>When not provided, the locale of the card product is used.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|en-US|
|*anonymous*|fr-FR|

<h2 id="tocS_3dsPassword">3dsPassword</h2>
<!-- backwards compatibility -->
<a id="schema3dspassword"></a>
<a id="schema_3dsPassword"></a>
<a id="tocS3dspassword"></a>
<a id="tocs3dspassword"></a>

```json
"Xtui43FvfiZ"

```

The case-sensitive password used to support knowledge-based 3DS authentication. 

Leading and trailing white spaces will be ignored.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The case-sensitive password used to support knowledge-based 3DS authentication. <br><br>Leading and trailing white spaces will be ignored.|

<h2 id="tocS_3dsPhoneNumber">3dsPhoneNumber</h2>
<!-- backwards compatibility -->
<a id="schema3dsphonenumber"></a>
<a id="schema_3dsPhoneNumber"></a>
<a id="tocS3dsphonenumber"></a>
<a id="tocs3dsphonenumber"></a>

```json
{
  "country_code": "+1",
  "number": "415 555 2671"
}

```

The phone number to send the one-time password (OTP) for 3DS authentication to.

This phone number is independent of the cardholder's mobile phone number on file.
The number is used for authorizations that require a <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure">3DS challenge</a>.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|true|none|The phone number's <a href="https://docs.checkout.com/resources/codes/country-codes" target="blank">international country calling code</a>.|
|number|string|true|none|A valid phone number without leading zeros.|

<h2 id="tocS_3dsSecurityPair">3dsSecurityPair</h2>
<!-- backwards compatibility -->
<a id="schema3dssecuritypair"></a>
<a id="schema_3dsSecurityPair"></a>
<a id="tocS3dssecuritypair"></a>
<a id="tocs3dssecuritypair"></a>

```json
{
  "question": "Who are you?",
  "answer": "Bond. James Bond."
}

```

The question and answer security pair used to support knowledge-based 3DS authentication.

Security pairs are set per-card, not per-cardholder.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|question|string|true|none|The cardholder’s security question.|
|answer|string|true|none|The cardholder’s answer to the security question.<br><br>The answer is not case-sensitive. Leading and trailing white spaces will be ignored.|

<h2 id="tocS_Password">Password</h2>
<!-- backwards compatibility -->
<a id="schemapassword"></a>
<a id="schema_Password"></a>
<a id="tocSpassword"></a>
<a id="tocspassword"></a>

```json
{
  "password": "Xtui43FvfiZ",
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|password|[3dsPassword](#schema3dspassword)|true|none|The case-sensitive password used to support knowledge-based 3DS authentication. <br><br>Leading and trailing white spaces will be ignored.|
|locale|[3dsLocale](#schema3dslocale)|false|none|The card's locale, as one of the possible BCP 47 formatted enum values. <br><br>The locale determines the language that text messages and 3DS challenge prompts are displayed to the user in, as well as the format used for amounts and dates.<br><br>When not provided, the locale of the card product is used.|
|phone_number|[3dsPhoneNumber](#schema3dsphonenumber)|true|none|The phone number to send the one-time password (OTP) for 3DS authentication to.<br><br>This phone number is independent of the cardholder's mobile phone number on file.<br>The number is used for authorizations that require a <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure">3DS challenge</a>.|

<h2 id="tocS_security_question">security_question</h2>
<!-- backwards compatibility -->
<a id="schemasecurity_question"></a>
<a id="schema_security_question"></a>
<a id="tocSsecurity_question"></a>
<a id="tocssecurity_question"></a>

```json
{
  "security_pair": {
    "question": "Who are you?",
    "answer": "Bond. James Bond."
  },
  "locale": "en-US",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|security_pair|[3dsSecurityPair](#schema3dssecuritypair)|true|none|The question and answer security pair used to support knowledge-based 3DS authentication.<br><br>Security pairs are set per-card, not per-cardholder.|
|locale|[3dsLocale](#schema3dslocale)|false|none|The card's locale, as one of the possible BCP 47 formatted enum values. <br><br>The locale determines the language that text messages and 3DS challenge prompts are displayed to the user in, as well as the format used for amounts and dates.<br><br>When not provided, the locale of the card product is used.|
|phone_number|[3dsPhoneNumber](#schema3dsphonenumber)|true|none|The phone number to send the one-time password (OTP) for 3DS authentication to.<br><br>This phone number is independent of the cardholder's mobile phone number on file.<br>The number is used for authorizations that require a <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure">3DS challenge</a>.|

<h2 id="tocS_activate-card-response">activate-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaactivate-card-response"></a>
<a id="schema_activate-card-response"></a>
<a id="tocSactivate-card-response"></a>
<a id="tocsactivate-card-response"></a>

```json
{
  "last_activated_on": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "suspend": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/suspend",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|last_activated_on|string(date-time)|true|read-only|The time the card was activated.|
|_links|[ActivatedCardLinks](#schemaactivatedcardlinks)|false|none|The links related to the card.|

<h2 id="tocS_add-card-request">add-card-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-card-request"></a>
<a id="schema_add-card-request"></a>
<a id="tocSadd-card-request"></a>
<a id="tocsadd-card-request"></a>

```json
{
  "type": "virtual",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "lifetime": {
    "unit": "Months",
    "value": 6
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The card type.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|lifetime|[CardLifetime](#schemacardlifetime)|false|none|The duration of time during which the card will accept incoming authorizations. <br><br>The `unit` and `value` combination you supply will determine the card's expiry date from the date of issue. For example, to set the card to expire in a year and a half, pass the following:<br>```<br>{<br>  "lifetime": {<br>    "unit": "Months",<br>    "value": "18"<br>  }<br>}<br>```|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata|
|scheduled_revocation_date|[IssuingScheduledRevocationDate](#schemaissuingscheduledrevocationdate)|false|none|The card will be revoked at midnight UTC on the date specified.<br><br>- Format: `YYYY-MM-DD`|
|revocation_date|[IssuingRevocationDate](#schemaissuingrevocationdate)|false|none|Deprecated. Use `scheduled_revocation_date` instead.<br><br>If you provide both fields, the `scheduled_revocation_date` value overrides this value.|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier. This field is required if there are multiple card products associated with the entity.|

<h2 id="tocS_add-card-response">add-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-card-response"></a>
<a id="schema_add-card-response"></a>
<a id="tocSadd-card-response"></a>
<a id="tocsadd-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "display_name": "JOHN KENNEDY",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "billing_currency": "USD",
  "issuing_country": "US",
  "status": "active",
  "type": "string",
  "reference": "X-123456-N11",
  "scheme": "mastercard",
  "created_date": "2019-09-10T10:11:12Z",
  "last_activated_on": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|type|[IssuingType](#schemaissuingtype)|true|none|The card type.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|string(date-time)|true|none|none|
|last_activated_on|[LastActivatedOn](#schemalastactivatedon)|false|none|The date and time the card was last activated.<br><br>If the card has never been activated, this field returns `null`.|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|

<h2 id="tocS_add-physical-card-request">add-physical-card-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-physical-card-request"></a>
<a id="schema_add-physical-card-request"></a>
<a id="tocSadd-physical-card-request"></a>
<a id="tocsadd-physical-card-request"></a>

```json
{
  "type": "physical",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "lifetime": {
    "unit": "Months",
    "value": 6
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "revocation_date": null,
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "display_name": "JOHN KENNEDY",
  "shipping_instructions": {
    "shipping_address": {
      "address_line1": "Checkout.com",
      "address_line2": "90 Tottenham Court Road",
      "city": "London",
      "state": "London",
      "zip": "W1T 4TJ",
      "country": "GB"
    },
    "shipping_recipient": "john kennedy",
    "additional_comment": "string"
  },
  "activate_card": false
}

```

physical

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The card type.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|lifetime|[CardLifetime](#schemacardlifetime)|false|none|The duration of time during which the card will accept incoming authorizations. <br><br>The `unit` and `value` combination you supply will determine the card's expiry date from the date of issue. For example, to set the card to expire in a year and a half, pass the following:<br>```<br>{<br>  "lifetime": {<br>    "unit": "Months",<br>    "value": "18"<br>  }<br>}<br>```|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata|
|revocation_date|any|false|none|Deprecated. Use `scheduled_revocation_date` instead.  <br><br>If you provide both fields, the `scheduled_revocation_date` value overrides this value.|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier. This field is required if there are multiple card products associated with the entity.|
|display_name|[DisplayName](#schemadisplayname)|true|none|The name to display on the card.|
|shipping_instructions|[IssuingShippingInstruction](#schemaissuingshippinginstruction)|true|none|none|
|activate_card|boolean|false|none|Sets whether to activate the newly created card upon creation. <br><br>If set to `false`, the cardholder will not be able to process transactions until you activate the card.|

<h2 id="tocS_add-physical-card-response">add-physical-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-physical-card-response"></a>
<a id="schema_add-physical-card-response"></a>
<a id="tocSadd-physical-card-response"></a>
<a id="tocsadd-physical-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "display_name": "JOHN KENNEDY",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "billing_currency": "USD",
  "issuing_country": "US",
  "status": "active",
  "type": "physical",
  "reference": "X-123456-N11",
  "scheme": "mastercard",
  "created_date": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

physical

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingType](#schemaissuingtype)|false|none|The card type.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|string(date-time)|true|none|none|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|physical|

<h2 id="tocS_add-virtual-card-control-mcc-limit-request">add-virtual-card-control-mcc-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-control-mcc-limit-request"></a>
<a id="schema_add-virtual-card-control-mcc-limit-request"></a>
<a id="tocSadd-virtual-card-control-mcc-limit-request"></a>
<a id="tocsadd-virtual-card-control-mcc-limit-request"></a>

```json
{
  "description": "string",
  "control_type": "mcc_limit",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

mcc_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|mcc_limit|[MccLimit](#schemamcclimit)|true|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

<h2 id="tocS_add-virtual-card-control-mid-limit-request">add-virtual-card-control-mid-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-control-mid-limit-request"></a>
<a id="schema_add-virtual-card-control-mid-limit-request"></a>
<a id="tocSadd-virtual-card-control-mid-limit-request"></a>
<a id="tocsadd-virtual-card-control-mid-limit-request"></a>

```json
{
  "description": "string",
  "control_type": "mid_limit",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

mid_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|mid_limit|[MidLimit](#schemamidlimit)|true|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

<h2 id="tocS_add-virtual-card-control-request">add-virtual-card-control-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-control-request"></a>
<a id="schema_add-virtual-card-control-request"></a>
<a id="tocSadd-virtual-card-control-request"></a>
<a id="tocsadd-virtual-card-control-request"></a>

```json
{
  "description": "string",
  "control_type": "velocity_limit",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The control to create.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-virtual-card-control-velocity-limit-request](#schemaadd-virtual-card-control-velocity-limit-request)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-virtual-card-control-mcc-limit-request](#schemaadd-virtual-card-control-mcc-limit-request)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-virtual-card-control-mid-limit-request](#schemaadd-virtual-card-control-mid-limit-request)|false|none|none|

<h2 id="tocS_add-virtual-card-control-velocity-limit-request">add-virtual-card-control-velocity-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-control-velocity-limit-request"></a>
<a id="schema_add-virtual-card-control-velocity-limit-request"></a>
<a id="tocSadd-virtual-card-control-velocity-limit-request"></a>
<a id="tocsadd-virtual-card-control-velocity-limit-request"></a>

```json
{
  "description": "string",
  "control_type": "velocity_limit",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

velocity_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|velocity_limit|[VelocityLimit](#schemavelocitylimit)|true|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|

<h2 id="tocS_add-virtual-card-request">add-virtual-card-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-request"></a>
<a id="schema_add-virtual-card-request"></a>
<a id="tocSadd-virtual-card-request"></a>
<a id="tocsadd-virtual-card-request"></a>

```json
{
  "type": "virtual",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "lifetime": {
    "unit": "Months",
    "value": 6
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "revocation_date": null,
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "display_name": "JOHN KENNEDY",
  "is_single_use": false,
  "activate_card": true,
  "return_credentials": [
    "number",
    "cvc2"
  ],
  "control_profiles": [
    "cpr_53mkhdc4jjlu5jcryx76bjbrgm"
  ],
  "controls": [
    {
      "description": "50 euros daily",
      "control_type": "velocity_limit",
      "velocity_limit": {
        "amount_limit": 5000,
        "velocity_window": {
          "type": "daily"
        }
      }
    },
    {
      "description": "Block gambling",
      "control_type": "mcc_limit",
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "7995"
        ]
      }
    }
  ]
}

```

virtual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The card type.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|lifetime|[CardLifetime](#schemacardlifetime)|false|none|The duration of time during which the card will accept incoming authorizations. <br><br>The `unit` and `value` combination you supply will determine the card's expiry date from the date of issue. For example, to set the card to expire in a year and a half, pass the following:<br>```<br>{<br>  "lifetime": {<br>    "unit": "Months",<br>    "value": "18"<br>  }<br>}<br>```|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata|
|revocation_date|any|false|none|Deprecated. Use `scheduled_revocation_date` instead.  <br><br>If you provide both fields, the `scheduled_revocation_date` value overrides this value.|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier. This field is required if there are multiple card products associated with the entity.|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|is_single_use|boolean|false|none|Sets whether the virtual card should expire after a single use.|
|activate_card|boolean|false|none|Sets whether to activate the newly created card upon creation.<br><br>If set to `false`, the cardholder will not be able to process transactions until you activate the card.|
|return_credentials|[string]|false|none|The credentials to retrieve on card creation.|
|control_profiles|[[IssuingControlProfileId](#schemaissuingcontrolprofileid)]|false|none|The control profiles you want to add the card to as a target.|
|controls|[[add-virtual-card-control-request](#schemaadd-virtual-card-control-request)]|false|none|The controls that will be set on the card.|

<h2 id="tocS_add-virtual-card-response-control-mcc-limit-response">add-virtual-card-response-control-mcc-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-response-control-mcc-limit-response"></a>
<a id="schema_add-virtual-card-response-control-mcc-limit-response"></a>
<a id="tocSadd-virtual-card-response-control-mcc-limit-response"></a>
<a id="tocsadd-virtual-card-response-control-mcc-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

mcc_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|mcc_limit|[MccLimit](#schemamcclimit)|true|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

<h2 id="tocS_add-virtual-card-response-control-mid-limit-response">add-virtual-card-response-control-mid-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-response-control-mid-limit-response"></a>
<a id="schema_add-virtual-card-response-control-mid-limit-response"></a>
<a id="tocSadd-virtual-card-response-control-mid-limit-response"></a>
<a id="tocsadd-virtual-card-response-control-mid-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

mid_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|mid_limit|[MidLimit](#schemamidlimit)|true|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

<h2 id="tocS_add-virtual-card-response-control-response">add-virtual-card-response-control-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-response-control-response"></a>
<a id="schema_add-virtual-card-response-control-response"></a>
<a id="tocSadd-virtual-card-response-control-response"></a>
<a id="tocsadd-virtual-card-response-control-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The card control's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-virtual-card-response-control-velocity-limit-response](#schemaadd-virtual-card-response-control-velocity-limit-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-virtual-card-response-control-mcc-limit-response](#schemaadd-virtual-card-response-control-mcc-limit-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-virtual-card-response-control-mid-limit-response](#schemaadd-virtual-card-response-control-mid-limit-response)|false|none|none|

<h2 id="tocS_add-virtual-card-response-control-velocity-limit-response">add-virtual-card-response-control-velocity-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-response-control-velocity-limit-response"></a>
<a id="schema_add-virtual-card-response-control-velocity-limit-response"></a>
<a id="tocSadd-virtual-card-response-control-velocity-limit-response"></a>
<a id="tocsadd-virtual-card-response-control-velocity-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

velocity_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|velocity_limit|[VelocityLimit](#schemavelocitylimit)|true|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|

<h2 id="tocS_add-virtual-card-response">add-virtual-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-virtual-card-response"></a>
<a id="schema_add-virtual-card-response"></a>
<a id="tocSadd-virtual-card-response"></a>
<a id="tocsadd-virtual-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "display_name": "JOHN KENNEDY",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "billing_currency": "USD",
  "issuing_country": "US",
  "status": "active",
  "type": "virtual",
  "reference": "X-123456-N11",
  "scheme": "mastercard",
  "created_date": "2019-09-10T10:11:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "credentials": {
    "number": "4242424242424242",
    "cvc2": "604"
  },
  "controls": [
    {
      "id": "ctr_s6tfwc6jpieexgcet2pljss6tu",
      "description": "Maximum spend of 500€ per week for restaurants",
      "control_type": "velocity_limit",
      "velocity_limit": {
        "amount_limit": 50000,
        "velocity_window": {
          "type": "weekly"
        },
        "mcc_list": [
          "4121",
          "4582"
        ]
      }
    },
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "description": "Allow the card to be used only in restaurants and supermarkets",
      "control_type": "mcc_limit",
      "mcc_limit": {
        "type": "allow",
        "mcc_list": [
          "5932",
          "5411"
        ]
      }
    },
    {
      "id": "ctr_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Allow the card to be used only in AZ Pizza",
      "control_type": "mid_limit",
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "593278",
          "541114"
        ]
      }
    }
  ]
}

```

virtual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingType](#schemaissuingtype)|false|none|The card type.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|string(date-time)|true|none|none|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|
|credentials|[Credentials](#schemacredentials)|false|none|none|
|controls|[[add-virtual-card-response-control-response](#schemaadd-virtual-card-response-control-response)]|false|none|The controls that were set on the card.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|virtual|

<h2 id="tocS_DisplayName">DisplayName</h2>
<!-- backwards compatibility -->
<a id="schemadisplayname"></a>
<a id="schema_DisplayName"></a>
<a id="tocSdisplayname"></a>
<a id="tocsdisplayname"></a>

```json
"JOHN KENNEDY"

```

The name to display on the card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The name to display on the card.|

<h2 id="tocS_get-card-response">get-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-card-response"></a>
<a id="schema_get-card-response"></a>
<a id="tocSget-card-response"></a>
<a id="tocsget-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "virtual",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "last_activated_on": "2019-09-10T10:11:12Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "is_single_use": false
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier.|
|user_id|[IssuingUserId](#schemaissuinguserid)|false|none|The Dashboard user's unique identifier.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|type|[IssuingType](#schemaissuingtype)|true|none|The card type.|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata.|
|scheduled_revocation_date|[IssuingScheduledRevocationDate](#schemaissuingscheduledrevocationdate)|false|none|The card will be revoked at midnight UTC on the date specified.<br><br>- Format: `YYYY-MM-DD`|
|revocation_date|[IssuingRevocationDate](#schemaissuingrevocationdate)|false|none|Deprecated. Use `scheduled_revocation_date` instead.|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|last_activated_on|[LastActivatedOn](#schemalastactivatedon)|false|none|The date and time the card was last activated.<br><br>If the card has never been activated, this field returns `null`.|
|root_card_id|[IssuingRootCardId](#schemaissuingrootcardid)|false|none|When a card is renewed, the unique identifier of the first card in the renewal history.|
|parent_card_id|[IssuingParentCardId](#schemaissuingparentcardid)|false|none|When a card is renewed, the unique identifier of the previous card in the renewal history.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|[Datetime](#schemadatetime)|false|none|none|
|last_modified_date|[Datetime](#schemadatetime)|false|none|none|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-virtual-card-response](#schemaget-virtual-card-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-physical-card-response](#schemaget-physical-card-response)|false|none|none|

<h2 id="tocS_get-physical-card-response">get-physical-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-physical-card-response"></a>
<a id="schema_get-physical-card-response"></a>
<a id="tocSget-physical-card-response"></a>
<a id="tocsget-physical-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "physical",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

physical

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier.|
|user_id|[IssuingUserId](#schemaissuinguserid)|false|none|The Dashboard user's unique identifier.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingType](#schemaissuingtype)|false|none|The card type.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata.|
|revocation_date|[IssuingRevocationDate](#schemaissuingrevocationdate)|false|none|Deprecated. Use `scheduled_revocation_date` instead.<br><br>Date scheduling the card's automatic revocation.<br><br>- Supported format: `YYYY-MM-DD` (time is midnight UTC)|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|root_card_id|[IssuingRootCardId](#schemaissuingrootcardid)|false|none|When a card is renewed, the unique identifier of the first card in the renewal history.|
|parent_card_id|[IssuingParentCardId](#schemaissuingparentcardid)|false|none|When a card is renewed, the unique identifier of the previous card in the renewal history.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|[Datetime](#schemadatetime)|false|none|none|
|last_modified_date|[Datetime](#schemadatetime)|false|none|none|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|physical|

<h2 id="tocS_get-virtual-card-response">get-virtual-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-virtual-card-response"></a>
<a id="schema_get-virtual-card-response"></a>
<a id="tocSget-virtual-card-response"></a>
<a id="tocsget-virtual-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "virtual",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "is_single_use": false
}

```

virtual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier.|
|user_id|[IssuingUserId](#schemaissuinguserid)|false|none|The Dashboard user's unique identifier.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingType](#schemaissuingtype)|false|none|The card type.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata.|
|revocation_date|[IssuingRevocationDate](#schemaissuingrevocationdate)|false|none|Deprecated. Use `scheduled_revocation_date` instead.<br><br>Date scheduling the card's automatic revocation.<br><br>- Supported format: `YYYY-MM-DD` (time is midnight UTC)|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|root_card_id|[IssuingRootCardId](#schemaissuingrootcardid)|false|none|When a card is renewed, the unique identifier of the first card in the renewal history.|
|parent_card_id|[IssuingParentCardId](#schemaissuingparentcardid)|false|none|When a card is renewed, the unique identifier of the previous card in the renewal history.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|[Datetime](#schemadatetime)|false|none|none|
|last_modified_date|[Datetime](#schemadatetime)|false|none|none|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|
|is_single_use|boolean|false|none|Specifies whether the virtual card is set to expire after a single use.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|virtual|

<h2 id="tocS_get-cardholder-cards-response">get-cardholder-cards-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-cardholder-cards-response"></a>
<a id="schema_get-cardholder-cards-response"></a>
<a id="tocSget-cardholder-cards-response"></a>
<a id="tocsget-cardholder-cards-response"></a>

```json
{
  "cards": [
    {
      "id": "crd_fa6psq242dcd6fdn5gifcq1491",
      "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
      "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
      "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
      "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
      "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
      "last_four": "1234",
      "expiry_month": 5,
      "expiry_year": 2025,
      "status": "active",
      "display_name": "JOHN KENNEDY",
      "type": "virtual",
      "billing_currency": "USD",
      "issuing_country": "US",
      "reference": "X-123456-N11",
      "metadata": {
        "udf1": "metadata1",
        "udf2": "metadata2",
        "udf3": "metadata3",
        "udf4": "metadata4",
        "udf5": "metadata5"
      },
      "scheduled_revocation_date": "2027-03-12",
      "revocation_date": "2027-03-12",
      "scheduled_activation_date": "2026-06-01T10:00Z",
      "last_activated_on": "2019-09-10T10:11:12Z",
      "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
      "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
      "scheme": "mastercard",
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
          "actions": [
            "GET"
          ],
          "types": [
            "application/json"
          ]
        },
        "credentials": {
          "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
          "actions": [
            "GET"
          ],
          "types": [
            "application/json"
          ]
        },
        "revoke": {
          "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
          "actions": [
            "POST"
          ],
          "types": [
            "application/json"
          ]
        },
        "controls": {
          "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
          "actions": [
            "GET"
          ],
          "types": [
            "application/json"
          ]
        }
      },
      "is_single_use": false
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|cards|[[get-card-response](#schemaget-card-response)]|true|none|The list of cards associated with the specified cardholder.|

<h2 id="tocS_ActivatedCardLinks">ActivatedCardLinks</h2>
<!-- backwards compatibility -->
<a id="schemaactivatedcardlinks"></a>
<a id="schema_ActivatedCardLinks"></a>
<a id="tocSactivatedcardlinks"></a>
<a id="tocsactivatedcardlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "revoke": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  },
  "suspend": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/suspend",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  },
  "controls": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's details.|
|revoke|[IssuingLink](#schemaissuinglink)|true|none|The URI to revoke the card.|
|suspend|[IssuingLink](#schemaissuinglink)|true|none|The URI to suspend the card.|
|controls|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's controls.|

<h2 id="tocS_CardLifetime">CardLifetime</h2>
<!-- backwards compatibility -->
<a id="schemacardlifetime"></a>
<a id="schema_CardLifetime"></a>
<a id="tocScardlifetime"></a>
<a id="tocscardlifetime"></a>

```json
{
  "unit": "Months",
  "value": 6
}

```

The duration of time during which the card will accept incoming authorizations. 

The `unit` and `value` combination you supply will determine the card's expiry date from the date of issue. For example, to set the card to expire in a year and a half, pass the following:
```
{
  "lifetime": {
    "unit": "Months",
    "value": "18"
  }
}
```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|unit|string|false|none|The unit of time to specify the card lifetime's in.|
|value|integer|true|none|The length of time before the card will expire, in the `unit` of time specified.|

#### Enumerated Values

|Property|Value|
|---|---|
|unit|Months|
|unit|Years|

<h2 id="tocS_CardLink">CardLink</h2>
<!-- backwards compatibility -->
<a id="schemacardlink"></a>
<a id="schema_CardLink"></a>
<a id="tocScardlink"></a>
<a id="tocscardlink"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "controls": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's details.|
|controls|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's controls.|

<h2 id="tocS_CardLinks">CardLinks</h2>
<!-- backwards compatibility -->
<a id="schemacardlinks"></a>
<a id="schema_CardLinks"></a>
<a id="tocScardlinks"></a>
<a id="tocscardlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "credentials": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "revoke": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  },
  "controls": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's details.|
|credentials|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's credentials.|
|revoke|[IssuingLink](#schemaissuinglink)|true|none|The URI to revoke the card.|
|controls|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's controls.|

<h2 id="tocS_CardNumber">CardNumber</h2>
<!-- backwards compatibility -->
<a id="schemacardnumber"></a>
<a id="schema_CardNumber"></a>
<a id="tocScardnumber"></a>
<a id="tocscardnumber"></a>

```json
"4242424242424242"

```

The unencrypted card number.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(pan)|false|none|The unencrypted card number.|

<h2 id="tocS_Credentials">Credentials</h2>
<!-- backwards compatibility -->
<a id="schemacredentials"></a>
<a id="schema_Credentials"></a>
<a id="tocScredentials"></a>
<a id="tocscredentials"></a>

```json
{
  "number": "4242424242424242",
  "cvc2": "604"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number|[CardNumber](#schemacardnumber)|false|none|The unencrypted card number.|
|cvc2|[CVC2](#schemacvc2)|false|none|The card's verification code, also known as the CVV or CVC2.|

<h2 id="tocS_CVC2">CVC2</h2>
<!-- backwards compatibility -->
<a id="schemacvc2"></a>
<a id="schema_CVC2"></a>
<a id="tocScvc2"></a>
<a id="tocscvc2"></a>

```json
"604"

```

The card's verification code, also known as the CVV or CVC2.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The card's verification code, also known as the CVV or CVC2.|

<h2 id="tocS_DigitalCardLinks">DigitalCardLinks</h2>
<!-- backwards compatibility -->
<a id="schemadigitalcardlinks"></a>
<a id="schema_DigitalCardLinks"></a>
<a id="tocSdigitalcardlinks"></a>
<a id="tocsdigitalcardlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/digital-cards/dcr_5ngxzsynm2me3oxf73esbhda6q",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the digital card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the digital card's details.|

<h2 id="tocS_DigitalCardType">DigitalCardType</h2>
<!-- backwards compatibility -->
<a id="schemadigitalcardtype"></a>
<a id="schema_DigitalCardType"></a>
<a id="tocSdigitalcardtype"></a>
<a id="tocsdigitalcardtype"></a>

```json
"secure_element"

```

The type of digital card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The type of digital card|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|secure_element|
|*anonymous*|host_card_emulation|
|*anonymous*|card_on_file|
|*anonymous*|e_commerce|
|*anonymous*|qr_code|

<h2 id="tocS_ExpiryMonth">ExpiryMonth</h2>
<!-- backwards compatibility -->
<a id="schemaexpirymonth"></a>
<a id="schema_ExpiryMonth"></a>
<a id="tocSexpirymonth"></a>
<a id="tocsexpirymonth"></a>

```json
5

```

The card's expiration month.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|integer(int32)|false|none|The card's expiration month.|

<h2 id="tocS_ExpiryYear">ExpiryYear</h2>
<!-- backwards compatibility -->
<a id="schemaexpiryyear"></a>
<a id="schema_ExpiryYear"></a>
<a id="tocSexpiryyear"></a>
<a id="tocsexpiryyear"></a>

```json
2025

```

The card's expiration year.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|integer(int32)|false|none|The card's expiration year.|

<h2 id="tocS_IssuingCardMetadata">IssuingCardMetadata</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcardmetadata"></a>
<a id="schema_IssuingCardMetadata"></a>
<a id="tocSissuingcardmetadata"></a>
<a id="tocsissuingcardmetadata"></a>

```json
{
  "udf1": "metadata1",
  "udf2": "metadata2",
  "udf3": "metadata3",
  "udf4": "metadata4",
  "udf5": "metadata5"
}

```

User's metadata.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|udf1|string|false|none|User defined field 1|
|udf2|string|false|none|User defined field 2|
|udf3|string|false|none|User defined field 3|
|udf4|string|false|none|User defined field 4|
|udf5|string|false|none|User defined field 5|

<h2 id="tocS_IssuingDevice">IssuingDevice</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdevice"></a>
<a id="schema_IssuingDevice"></a>
<a id="tocSissuingdevice"></a>
<a id="tocsissuingdevice"></a>

```json
{
  "id": "04431C7B514E80018306224737548585F11415F67C4E2EB6",
  "type": "iphone",
  "manufacturer": "ios",
  "brand": "string",
  "model": "string",
  "os_version": "13",
  "firmware_version": "string",
  "phone_number": "447505551234",
  "device_name": "John's iPhone",
  "device_parent_id": "string",
  "language": "string",
  "serial_number": "string",
  "time_zone": "string",
  "time_zone_setting": "network_set",
  "sim_serial_number": "string",
  "imei": "000000000000024",
  "network_operator": "string",
  "network_type": "wifi"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The device ID.|
|type|string|false|none|The device type.|
|manufacturer|string|false|none|The device manufacturer.|
|brand|string|false|none|The device brand.|
|model|string|false|none|The device model.|
|os_version|string|false|none|The device operating system version.|
|firmware_version|string|false|none|The device firmware version.|
|phone_number|string|false|none|The device phone number.|
|device_name|string|false|none|The device name.|
|device_parent_id|string|false|none|The device parent ID.|
|language|string|false|none|The device language.|
|serial_number|string|false|none|The device serial number.|
|time_zone|string|false|none|The device time zone.|
|time_zone_setting|string|false|none|The device time zone setting.|
|sim_serial_number|string|false|none|The device SIM serial number.|
|imei|string|false|none|The device International Mobile Equipment Identity (IMEI) number.|
|network_operator|string|false|none|The device network operator.|
|network_type|string|false|none|The device network type.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|host_card_emulation|
|type|samsung_phone|
|type|samsung_tablet|
|type|samsung_watch|
|type|samsung_tv|
|type|iphone|
|type|iwatch|
|type|ipad|
|type|mac_book|
|type|android_phone|
|type|android_tablet|
|type|android_watch|
|type|mobile_phone|
|type|tablet|
|type|watch|
|type|mobile_phone_or_tablet|
|type|bracelet|
|type|unknown|
|time_zone_setting|network_set|
|time_zone_setting|consumer_set|
|network_type|cellular|
|network_type|wifi|

<h2 id="tocS_IssuingDigitalStatus">IssuingDigitalStatus</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdigitalstatus"></a>
<a id="schema_IssuingDigitalStatus"></a>
<a id="tocSissuingdigitalstatus"></a>
<a id="tocsissuingdigitalstatus"></a>

```json
"active"

```

The digital card's current status, which determines whether it can approve incoming authorizations:

- `inactive`: the default state - authorizations will be declined until the card is activated
- `active`: authorization requests can be approved
- `deleted`: incoming authorization requests will be declined, permanently — the card cannot be reactivated from this state

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The digital card's current status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `deleted`: incoming authorization requests will be declined, permanently — the card cannot be reactivated from this state|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|active|
|*anonymous*|inactive|
|*anonymous*|deleted|

<h2 id="tocS_IssuingRequestor">IssuingRequestor</h2>
<!-- backwards compatibility -->
<a id="schemaissuingrequestor"></a>
<a id="schema_IssuingRequestor"></a>
<a id="tocSissuingrequestor"></a>
<a id="tocsissuingrequestor"></a>

```json
{
  "id": "501103353211",
  "name": "APPLE PAY"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The requestor ID.|
|name|string|false|none|The requestor name.|

<h2 id="tocS_IssuingRevocationDate">IssuingRevocationDate</h2>
<!-- backwards compatibility -->
<a id="schemaissuingrevocationdate"></a>
<a id="schema_IssuingRevocationDate"></a>
<a id="tocSissuingrevocationdate"></a>
<a id="tocsissuingrevocationdate"></a>

```json
"2027-03-12"

```

Deprecated. Use `scheduled_revocation_date` instead.

Date scheduling the card's automatic revocation.

- Supported format: `YYYY-MM-DD` (time is midnight UTC)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(date)|false|none|Deprecated. Use `scheduled_revocation_date` instead.<br><br>Date scheduling the card's automatic revocation.<br><br>- Supported format: `YYYY-MM-DD` (time is midnight UTC)|

<h2 id="tocS_IssuingScheduledActivationDate">IssuingScheduledActivationDate</h2>
<!-- backwards compatibility -->
<a id="schemaissuingscheduledactivationdate"></a>
<a id="schema_IssuingScheduledActivationDate"></a>
<a id="tocSissuingscheduledactivationdate"></a>
<a id="tocsissuingscheduledactivationdate"></a>

```json
"2026-06-01T10:00Z"

```

Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:

- Date only: `YYYY-MM-DD` (treated as midnight UTC)
- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)

Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|

<h2 id="tocS_IssuingScheduledRevocationDate">IssuingScheduledRevocationDate</h2>
<!-- backwards compatibility -->
<a id="schemaissuingscheduledrevocationdate"></a>
<a id="schema_IssuingScheduledRevocationDate"></a>
<a id="tocSissuingscheduledrevocationdate"></a>
<a id="tocsissuingscheduledrevocationdate"></a>

```json
"2027-03-12"

```

The card will be revoked at midnight UTC on the date specified.

- Format: `YYYY-MM-DD`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(date)|false|none|The card will be revoked at midnight UTC on the date specified.<br><br>- Format: `YYYY-MM-DD`|

<h2 id="tocS_IssuingStatus">IssuingStatus</h2>
<!-- backwards compatibility -->
<a id="schemaissuingstatus"></a>
<a id="schema_IssuingStatus"></a>
<a id="tocSissuingstatus"></a>
<a id="tocsissuingstatus"></a>

```json
"active"

```

The card's status, which determines whether it can approve incoming authorizations:

- `inactive`: the default state - authorizations will be declined until the card is activated
- `active`: authorization requests can be approved
- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations
- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|active|
|*anonymous*|inactive|
|*anonymous*|revoked|
|*anonymous*|suspended|

<h2 id="tocS_IssuingType">IssuingType</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtype"></a>
<a id="schema_IssuingType"></a>
<a id="tocSissuingtype"></a>
<a id="tocsissuingtype"></a>

```json
"string"

```

The card type.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The card type.|

<h2 id="tocS_LastActivatedOn">LastActivatedOn</h2>
<!-- backwards compatibility -->
<a id="schemalastactivatedon"></a>
<a id="schema_LastActivatedOn"></a>
<a id="tocSlastactivatedon"></a>
<a id="tocslastactivatedon"></a>

```json
"2019-09-10T10:11:12Z"

```

The date and time the card was last activated.

If the card has never been activated, this field returns `null`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(date-time)¦null|false|read-only|The date and time the card was last activated.<br><br>If the card has never been activated, this field returns `null`.|

<h2 id="tocS_LastFour">LastFour</h2>
<!-- backwards compatibility -->
<a id="schemalastfour"></a>
<a id="schema_LastFour"></a>
<a id="tocSlastfour"></a>
<a id="tocslastfour"></a>

```json
"1234"

```

The last four digits of the card number, also known as the PAN.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The last four digits of the card number, also known as the PAN.|

<h2 id="tocS_RenewedCardLinks">RenewedCardLinks</h2>
<!-- backwards compatibility -->
<a id="schemarenewedcardlinks"></a>
<a id="schema_RenewedCardLinks"></a>
<a id="tocSrenewedcardlinks"></a>
<a id="tocsrenewedcardlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "credentials": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "activate": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/activate",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  },
  "controls": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card details.|
|credentials|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's credentials.|
|activate|[IssuingLink](#schemaissuinglink)|true|none|The URI to activate the card.|
|controls|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's controls.|

<h2 id="tocS_Scheme">Scheme</h2>
<!-- backwards compatibility -->
<a id="schemascheme"></a>
<a id="schema_Scheme"></a>
<a id="tocSscheme"></a>
<a id="tocsscheme"></a>

```json
"mastercard"

```

the card scheme.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|the card scheme.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|mastercard|
|*anonymous*|visa|

<h2 id="tocS_SuspendedCardLinks">SuspendedCardLinks</h2>
<!-- backwards compatibility -->
<a id="schemasuspendedcardlinks"></a>
<a id="schema_SuspendedCardLinks"></a>
<a id="tocSsuspendedcardlinks"></a>
<a id="tocssuspendedcardlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  },
  "activate": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/activate",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  },
  "revoke": {
    "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
    "actions": [
      "POST"
    ],
    "types": [
      "application/json"
    ]
  },
  "controls": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the card.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card details.|
|activate|[IssuingLink](#schemaissuinglink)|true|none|The URI to activate the card.|
|revoke|[IssuingLink](#schemaissuinglink)|true|none|The URI to revoke the card.|
|controls|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the card's controls.|

<h2 id="tocS_physical_card">physical_card</h2>
<!-- backwards compatibility -->
<a id="schemaphysical_card"></a>
<a id="schema_physical_card"></a>
<a id="tocSphysical_card"></a>
<a id="tocsphysical_card"></a>

```json
{
  "display_name": "JOHN KENNEDY",
  "shipping_instructions": {
    "shipping_address": {
      "address_line1": "Checkout.com",
      "address_line2": "90 Tottenham Court Road",
      "city": "London",
      "state": "London",
      "zip": "W1T 4TJ",
      "country": "GB"
    },
    "shipping_recipient": "john kennedy",
    "additional_comment": "string"
  },
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|shipping_instructions|[IssuingShippingInstruction](#schemaissuingshippinginstruction)|false|none|none|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata|

<h2 id="tocS_virtual_card">virtual_card</h2>
<!-- backwards compatibility -->
<a id="schemavirtual_card"></a>
<a id="schema_virtual_card"></a>
<a id="tocSvirtual_card"></a>
<a id="tocsvirtual_card"></a>

```json
{
  "display_name": "JOHN KENNEDY",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata|

<h2 id="tocS_renew-card-response">renew-card-response</h2>
<!-- backwards compatibility -->
<a id="schemarenew-card-response"></a>
<a id="schema_renew-card-response"></a>
<a id="tocSrenew-card-response"></a>
<a id="tocsrenew-card-response"></a>

```json
{
  "parent_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "status": "inactive",
  "type": "string",
  "id": "crd_zdihd7452165pk5lgywaa52147",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_year": 2025,
  "expiry_month": 5,
  "display_name": "JOHN KENNEDY",
  "reference": "X-123456-N11",
  "created_date": "2021-09-09T19:41:39Z",
  "billing_currency": "USD",
  "issuing_country": "US",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "activate": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/activate",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|parent_card_id|[IssuingCardId](#schemaissuingcardid)|false|none|The unique identifier of the card that was renewed.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|false|none|The cardholder's unique identifier.|
|status|[IssuingStatus](#schemaissuingstatus)|false|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|type|[IssuingType](#schemaissuingtype)|false|none|The card type.|
|id|[IssuingCardId](#schemaissuingcardid)|false|none|The unique identifier of the new card.|
|client_id|[IssuingClientId](#schemaissuingclientid)|false|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|false|none|The entity's unique identifier.|
|last_four|[LastFour](#schemalastfour)|false|none|The last four digits of the card number, also known as the PAN.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|false|none|The card's expiration year.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|false|none|The card's expiration month.|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|created_date|[Datetime](#schemadatetime)|false|none|none|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|false|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|false|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|_links|[RenewedCardLinks](#schemarenewedcardlinks)|false|none|The links related to the card.|

<h2 id="tocS_revoke-card-request">revoke-card-request</h2>
<!-- backwards compatibility -->
<a id="schemarevoke-card-request"></a>
<a id="schema_revoke-card-request"></a>
<a id="tocSrevoke-card-request"></a>
<a id="tocsrevoke-card-request"></a>

```json
{
  "reason": "reported_lost"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reason|string|false|none|The reason why the card is being revoked.|

#### Enumerated Values

|Property|Value|
|---|---|
|reason|expired|
|reason|reported_lost|
|reason|reported_stolen|

<h2 id="tocS_revoke-card-response">revoke-card-response</h2>
<!-- backwards compatibility -->
<a id="schemarevoke-card-response"></a>
<a id="schema_revoke-card-response"></a>
<a id="tocSrevoke-card-response"></a>
<a id="tocsrevoke-card-response"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[CardLink](#schemacardlink)|false|none|The links related to the card.|

<h2 id="tocS_suspend-card-request">suspend-card-request</h2>
<!-- backwards compatibility -->
<a id="schemasuspend-card-request"></a>
<a id="schema_suspend-card-request"></a>
<a id="tocSsuspend-card-request"></a>
<a id="tocssuspend-card-request"></a>

```json
{
  "reason": "suspected_lost"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reason|string|false|none|The reason why the card is being suspended.|

#### Enumerated Values

|Property|Value|
|---|---|
|reason|suspected_lost|
|reason|suspected_stolen|

<h2 id="tocS_suspend-card-response">suspend-card-response</h2>
<!-- backwards compatibility -->
<a id="schemasuspend-card-response"></a>
<a id="schema_suspend-card-response"></a>
<a id="tocSsuspend-card-response"></a>
<a id="tocssuspend-card-response"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "activate": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/activate",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[SuspendedCardLinks](#schemasuspendedcardlinks)|false|none|The links related to the card.|

<h2 id="tocS_update-card-request">update-card-request</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-card-request"></a>
<a id="schema_update-card-request"></a>
<a id="tocSupdate-card-request"></a>
<a id="tocsupdate-card-request"></a>

```json
{
  "status": "active",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "expiry_month": 5,
  "expiry_year": 2025,
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z"
}

```

The card fields to update.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|false|none|Set the card's status to `active` to activate an `inactive` or `suspended` card.<br><br>If you submit this field, you cannot specify a `scheduled_activation_date`. If you do, you receive a `scheduled_activation_date_conflicts_with_activation` error.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|false|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|false|none|The card's expiration year.|
|scheduled_revocation_date|[IssuingScheduledRevocationDate](#schemaissuingscheduledrevocationdate)|false|none|The card will be revoked at midnight UTC on the date specified.<br><br>- Format: `YYYY-MM-DD`|
|revocation_date|[IssuingRevocationDate](#schemaissuingrevocationdate)|false|none|Deprecated. Use `scheduled_revocation_date` instead.<br><br>If you provide both fields, the `scheduled_revocation_date` value overrides this value.|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|active|

<h2 id="tocS_update-card-response">update-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-card-response"></a>
<a id="schema_update-card-response"></a>
<a id="tocSupdate-card-response"></a>
<a id="tocsupdate-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "string",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "last_activated_on": "2019-09-10T10:11:12Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|cardholder_id|[IssuingCardholderId](#schemaissuingcardholderid)|true|none|The cardholder's unique identifier.|
|card_product_id|[IssuingCardProductId](#schemaissuingcardproductid)|true|none|The card product's unique identifier.|
|user_id|[IssuingUserId](#schemaissuinguserid)|false|none|The Dashboard user's unique identifier.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|true|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|true|none|The card's expiration year.|
|status|[IssuingStatus](#schemaissuingstatus)|true|none|The card's status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations<br>- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state|
|display_name|[DisplayName](#schemadisplayname)|false|none|The name to display on the card.|
|type|[IssuingType](#schemaissuingtype)|true|none|The card type.|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|true|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|issuing_country|[IssuingCountry](#schemaissuingcountry)|true|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|
|reference|[IssuingReference](#schemaissuingreference)|false|none|Your reference.|
|metadata|[IssuingCardMetadata](#schemaissuingcardmetadata)|false|none|User's metadata.|
|scheduled_revocation_date|[IssuingScheduledRevocationDate](#schemaissuingscheduledrevocationdate)|false|none|The card will be revoked at midnight UTC on the date specified.<br><br>- Format: `YYYY-MM-DD`|
|revocation_date|[IssuingRevocationDate](#schemaissuingrevocationdate)|false|none|Deprecated. Use `scheduled_revocation_date` instead.|
|scheduled_activation_date|[IssuingScheduledActivationDate](#schemaissuingscheduledactivationdate)|false|none|Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:<br><br>- Date only: `YYYY-MM-DD` (treated as midnight UTC)<br>- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)<br><br>Only round hours are allowed when a time is provided (`HH:00`). The value must be at least the next round hour after the request time.|
|last_activated_on|[LastActivatedOn](#schemalastactivatedon)|false|none|The date and time the card was last activated.<br><br>If the card has never been activated, this field returns `null`.|
|root_card_id|[IssuingRootCardId](#schemaissuingrootcardid)|false|none|When a card is renewed, the unique identifier of the first card in the renewal history.|
|parent_card_id|[IssuingParentCardId](#schemaissuingparentcardid)|false|none|When a card is renewed, the unique identifier of the previous card in the renewal history.|
|scheme|[Scheme](#schemascheme)|true|none|the card scheme.|
|created_date|[Datetime](#schemadatetime)|false|none|none|
|last_modified_date|[Datetime](#schemadatetime)|true|none|none|
|_links|[CardLinks](#schemacardlinks)|false|none|The links related to the card.|

<h2 id="tocS_update-physical-card-response">update-physical-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-physical-card-response"></a>
<a id="schema_update-physical-card-response"></a>
<a id="tocSupdate-physical-card-response"></a>
<a id="tocsupdate-physical-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "string",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "last_activated_on": "2019-09-10T10:11:12Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

allOf - discriminator: update-card-response.type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[update-card-response](#schemaupdate-card-response)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_update-virtual-card-response">update-virtual-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-virtual-card-response"></a>
<a id="schema_update-virtual-card-response"></a>
<a id="tocSupdate-virtual-card-response"></a>
<a id="tocsupdate-virtual-card-response"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
  "card_product_id": "pro_7syjig3jq3mezlc3vjrdpfitl4",
  "user_id": "usr_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "expiry_month": 5,
  "expiry_year": 2025,
  "status": "active",
  "display_name": "JOHN KENNEDY",
  "type": "string",
  "billing_currency": "USD",
  "issuing_country": "US",
  "reference": "X-123456-N11",
  "metadata": {
    "udf1": "metadata1",
    "udf2": "metadata2",
    "udf3": "metadata3",
    "udf4": "metadata4",
    "udf5": "metadata5"
  },
  "scheduled_revocation_date": "2027-03-12",
  "revocation_date": "2027-03-12",
  "scheduled_activation_date": "2026-06-01T10:00Z",
  "last_activated_on": "2019-09-10T10:11:12Z",
  "root_card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "parent_card_id": "crd_qm26t52qz3yejjo2t4btqvxtzi",
  "scheme": "mastercard",
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "credentials": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/credentials",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "revoke": {
      "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke",
      "actions": [
        "POST"
      ],
      "types": [
        "application/json"
      ]
    },
    "controls": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq42dcdd6fdn5gifcq1491",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "is_single_use": false
}

```

### Properties

allOf - discriminator: update-card-response.type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[update-card-response](#schemaupdate-card-response)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» is_single_use|boolean|false|none|Specifies whether the virtual card is set to expire after a single use.|

<h2 id="tocS_get-digital-card-response">get-digital-card-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-digital-card-response"></a>
<a id="schema_get-digital-card-response"></a>
<a id="tocSget-digital-card-response"></a>
<a id="tocsget-digital-card-response"></a>

```json
{
  "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
  "card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "client_id": "cli_vkuhvk4vjn2edkps7dfsq6emqm",
  "entity_id": "ent_fa6psq242dcd6fdn5gifcq1491",
  "last_four": "1234",
  "status": "active",
  "type": "secure_element",
  "scheme_card_id": "FAPLMC00002572060f2b2213c3964c44b218665ef9dd0d72",
  "requestor": {
    "id": "501103353211",
    "name": "APPLE PAY"
  },
  "device": {
    "id": "04431C7B514E80018306224737548585F11415F67C4E2EB6",
    "type": "iphone",
    "manufacturer": "ios",
    "brand": "string",
    "model": "string",
    "os_version": "13",
    "firmware_version": "string",
    "phone_number": "447505551234",
    "device_name": "John's iPhone",
    "device_parent_id": "string",
    "language": "string",
    "serial_number": "string",
    "time_zone": "string",
    "time_zone_setting": "network_set",
    "sim_serial_number": "string",
    "imei": "000000000000024",
    "network_operator": "string",
    "network_type": "wifi"
  },
  "provisioned_on": "2021-09-09T19:41:39Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/digital-cards/dcr_5ngxzsynm2me3oxf73esbhda6q",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingDigitalCardId](#schemaissuingdigitalcardid)|true|none|The digital card's unique identifier.|
|card_id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|client_id|[IssuingClientId](#schemaissuingclientid)|true|none|The client's unique identifier.|
|entity_id|[IssuingEntityId](#schemaissuingentityid)|true|none|The entity's unique identifier.|
|last_four|[LastFour](#schemalastfour)|true|none|The last four digits of the card number, also known as the PAN.|
|status|[IssuingDigitalStatus](#schemaissuingdigitalstatus)|true|none|The digital card's current status, which determines whether it can approve incoming authorizations:<br><br>- `inactive`: the default state - authorizations will be declined until the card is activated<br>- `active`: authorization requests can be approved<br>- `deleted`: incoming authorization requests will be declined, permanently — the card cannot be reactivated from this state|
|type|[DigitalCardType](#schemadigitalcardtype)|false|none|The type of digital card|
|scheme_card_id|[IssuingSchemeCardId](#schemaissuingschemecardid)|false|none|The ID that the card scheme’s token service provider (TSP) assigns to the PAN at the first tokenization.|
|requestor|[IssuingRequestor](#schemaissuingrequestor)|false|none|none|
|device|[IssuingDevice](#schemaissuingdevice)|false|none|none|
|provisioned_on|[Datetime](#schemadatetime)|false|none|none|
|_links|[DigitalCardLinks](#schemadigitalcardlinks)|false|none|The links related to the digital card.|

<h2 id="tocS_BusinessType">BusinessType</h2>
<!-- backwards compatibility -->
<a id="schemabusinesstype"></a>
<a id="schema_BusinessType"></a>
<a id="tocSbusinesstype"></a>
<a id="tocsbusinesstype"></a>

```json
"business_account"

```

The type of business.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The type of business.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|issuing|
|*anonymous*|business_account|

<h2 id="tocS_Datetime">Datetime</h2>
<!-- backwards compatibility -->
<a id="schemadatetime"></a>
<a id="schema_Datetime"></a>
<a id="tocSdatetime"></a>
<a id="tocsdatetime"></a>

```json
"2021-09-09T19:41:39Z"

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(UTC)|false|none|none|

<h2 id="tocS_IssuingAddress">IssuingAddress</h2>
<!-- backwards compatibility -->
<a id="schemaissuingaddress"></a>
<a id="schema_IssuingAddress"></a>
<a id="tocSissuingaddress"></a>
<a id="tocsissuingaddress"></a>

```json
{
  "address_line1": "Checkout.com",
  "address_line2": "90 Tottenham Court Road",
  "city": "London",
  "state": "London",
  "zip": "W1T 4TJ",
  "country": "GB"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address_line1|string|true|none|The first line of the address.|
|address_line2|string|false|none|The second line of the address.|
|city|string|true|none|The address city.|
|state|string|false|none|The address state.|
|zip|string|true|none|The address zip code, or postal code.|
|country|string|true|none|The address country, as an <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank">ISO country code</a>.|

<h2 id="tocS_IssuingCardholderId">IssuingCardholderId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcardholderid"></a>
<a id="schema_IssuingCardholderId"></a>
<a id="tocSissuingcardholderid"></a>
<a id="tocsissuingcardholderid"></a>

```json
"crh_d3ozhf43pcq2xbldn2g45qnb44"

```

The cardholder's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The cardholder's unique identifier.|

<h2 id="tocS_IssuingCardId">IssuingCardId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcardid"></a>
<a id="schema_IssuingCardId"></a>
<a id="tocSissuingcardid"></a>
<a id="tocsissuingcardid"></a>

```json
"crd_fa6psq242dcd6fdn5gifcq1491"

```

The card's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The card's unique identifier.|

<h2 id="tocS_IssuingCardProductId">IssuingCardProductId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcardproductid"></a>
<a id="schema_IssuingCardProductId"></a>
<a id="tocSissuingcardproductid"></a>
<a id="tocsissuingcardproductid"></a>

```json
"pro_7syjig3jq3mezlc3vjrdpfitl4"

```

The card product's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The card product's unique identifier.|

<h2 id="tocS_IssuingClientId">IssuingClientId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingclientid"></a>
<a id="schema_IssuingClientId"></a>
<a id="tocSissuingclientid"></a>
<a id="tocsissuingclientid"></a>

```json
"cli_vkuhvk4vjn2edkps7dfsq6emqm"

```

The client's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The client's unique identifier.|

<h2 id="tocS_IssuingCountry">IssuingCountry</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcountry"></a>
<a id="schema_IssuingCountry"></a>
<a id="tocSissuingcountry"></a>
<a id="tocsissuingcountry"></a>

```json
"US"

```

The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The issuing country, as a two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank" >ISO country code</a>.|

<h2 id="tocS_IssuingCurrency">IssuingCurrency</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcurrency"></a>
<a id="schema_IssuingCurrency"></a>
<a id="tocSissuingcurrency"></a>
<a id="tocsissuingcurrency"></a>

```json
"USD"

```

The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(ISO4217)|false|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|

<h2 id="tocS_IssuingDigitalCardId">IssuingDigitalCardId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdigitalcardid"></a>
<a id="schema_IssuingDigitalCardId"></a>
<a id="tocSissuingdigitalcardid"></a>
<a id="tocsissuingdigitalcardid"></a>

```json
"dcr_5ngxzsynm2me3oxf73esbhda6q"

```

The digital card's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The digital card's unique identifier.|

<h2 id="tocS_IssuingEmail">IssuingEmail</h2>
<!-- backwards compatibility -->
<a id="schemaissuingemail"></a>
<a id="schema_IssuingEmail"></a>
<a id="tocSissuingemail"></a>
<a id="tocsissuingemail"></a>

```json
"john.kennedy@myemaildomain.com"

```

The cardholder's email address. 

Emails are validated against the <a href="https://datatracker.ietf.org/doc/html/rfc6530">rfc6530</a> standard.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(email)|false|none|The cardholder's email address. <br><br>Emails are validated against the <a href="https://datatracker.ietf.org/doc/html/rfc6530">rfc6530</a> standard.|

<h2 id="tocS_IssuingEntityId">IssuingEntityId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingentityid"></a>
<a id="schema_IssuingEntityId"></a>
<a id="tocSissuingentityid"></a>
<a id="tocsissuingentityid"></a>

```json
"ent_fa6psq242dcd6fdn5gifcq1491"

```

The entity's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The entity's unique identifier.|

<h2 id="tocS_IssuingFileId">IssuingFileId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingfileid"></a>
<a id="schema_IssuingFileId"></a>
<a id="tocSissuingfileid"></a>
<a id="tocsissuingfileid"></a>

```json
"file_6lbss42ezvoufcb2beo76rvwly"

```

The unique Checkout.com identifier for the uploaded file.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The unique Checkout.com identifier for the uploaded file.|

<h2 id="tocS_IssuingLink">IssuingLink</h2>
<!-- backwards compatibility -->
<a id="schemaissuinglink"></a>
<a id="schema_IssuingLink"></a>
<a id="tocSissuinglink"></a>
<a id="tocsissuinglink"></a>

```json
{
  "href": "string",
  "actions": [
    "GET"
  ],
  "types": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string|true|none|The link URL.|
|actions|[string]|true|none|The HTTP Methods that can be performed on the link.|
|types|[string]|true|none|The Content Types for the link to the resource|

<h2 id="tocS_IssuingNotFoundError">IssuingNotFoundError</h2>
<!-- backwards compatibility -->
<a id="schemaissuingnotfounderror"></a>
<a id="schema_IssuingNotFoundError"></a>
<a id="tocSissuingnotfounderror"></a>
<a id="tocsissuingnotfounderror"></a>

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "not_found",
  "error_codes": [
    "card_not_found"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|
|error_codes|[string]|false|none|none|

<h2 id="tocS_IssuingParentCardId">IssuingParentCardId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingparentcardid"></a>
<a id="schema_IssuingParentCardId"></a>
<a id="tocSissuingparentcardid"></a>
<a id="tocsissuingparentcardid"></a>

```json
"crd_qm26t52qz3yejjo2t4btqvxtzi"

```

When a card is renewed, the unique identifier of the previous card in the renewal history.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|When a card is renewed, the unique identifier of the previous card in the renewal history.|

<h2 id="tocS_IssuingPhoneNumber">IssuingPhoneNumber</h2>
<!-- backwards compatibility -->
<a id="schemaissuingphonenumber"></a>
<a id="schema_IssuingPhoneNumber"></a>
<a id="tocSissuingphonenumber"></a>
<a id="tocsissuingphonenumber"></a>

```json
{
  "country_code": "+1",
  "number": "415 555 2671"
}

```

The cardholder's mobile phone number. This is used in the card tokenization one-time passcode (OTP) challenge flow and in delivery details for physical cards.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|false|none|The international <a href="https://docs.checkout.com/resources/codes/country-codes" target="blank">country calling code</a>.|
|number|string|false|none|A valid phone number without leading zeros.|

<h2 id="tocS_IssuingReference">IssuingReference</h2>
<!-- backwards compatibility -->
<a id="schemaissuingreference"></a>
<a id="schema_IssuingReference"></a>
<a id="tocSissuingreference"></a>
<a id="tocsissuingreference"></a>

```json
"X-123456-N11"

```

Your reference.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Your reference.|

<h2 id="tocS_IssuingRootCardId">IssuingRootCardId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingrootcardid"></a>
<a id="schema_IssuingRootCardId"></a>
<a id="tocSissuingrootcardid"></a>
<a id="tocsissuingrootcardid"></a>

```json
"crd_fa6psq242dcd6fdn5gifcq1491"

```

When a card is renewed, the unique identifier of the first card in the renewal history.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|When a card is renewed, the unique identifier of the first card in the renewal history.|

<h2 id="tocS_IssuingSchemeCardId">IssuingSchemeCardId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingschemecardid"></a>
<a id="schema_IssuingSchemeCardId"></a>
<a id="tocSissuingschemecardid"></a>
<a id="tocsissuingschemecardid"></a>

```json
"FAPLMC00002572060f2b2213c3964c44b218665ef9dd0d72"

```

The ID that the card scheme’s token service provider (TSP) assigns to the PAN at the first tokenization.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The ID that the card scheme’s token service provider (TSP) assigns to the PAN at the first tokenization.|

<h2 id="tocS_IssuingShippingContact">IssuingShippingContact</h2>
<!-- backwards compatibility -->
<a id="schemaissuingshippingcontact"></a>
<a id="schema_IssuingShippingContact"></a>
<a id="tocSissuingshippingcontact"></a>
<a id="tocsissuingshippingcontact"></a>

```json
{
  "first_name": "John",
  "last_name": "Kennedy",
  "phone_number": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|true|none|The cardholder's first name.|
|last_name|string|true|none|The cardholder's last name.|
|phone_number|[IssuingPhoneNumber](#schemaissuingphonenumber)|true|none|The cardholder's mobile phone number. This is used in the card tokenization one-time passcode (OTP) challenge flow and in delivery details for physical cards.|

<h2 id="tocS_IssuingShippingInstruction">IssuingShippingInstruction</h2>
<!-- backwards compatibility -->
<a id="schemaissuingshippinginstruction"></a>
<a id="schema_IssuingShippingInstruction"></a>
<a id="tocSissuingshippinginstruction"></a>
<a id="tocsissuingshippinginstruction"></a>

```json
{
  "shipping_address": {
    "address_line1": "Checkout.com",
    "address_line2": "90 Tottenham Court Road",
    "city": "London",
    "state": "London",
    "zip": "W1T 4TJ",
    "country": "GB"
  },
  "shipping_recipient": "john kennedy",
  "additional_comment": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|shipping_address|[IssuingAddress](#schemaissuingaddress)|true|none|The address to ship the physical card to.|
|shipping_recipient|string|false|none|The name of the person the card will be shipped to.|
|additional_comment|string|false|none|Any additional comment on shipping.|

<h2 id="tocS_IssuingUserId">IssuingUserId</h2>
<!-- backwards compatibility -->
<a id="schemaissuinguserid"></a>
<a id="schema_IssuingUserId"></a>
<a id="tocSissuinguserid"></a>
<a id="tocsissuinguserid"></a>

```json
"usr_fa6psq242dcd6fdn5gifcq1491"

```

The Dashboard user's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The Dashboard user's unique identifier.|

<h2 id="tocS_IssuingValidationError">IssuingValidationError</h2>
<!-- backwards compatibility -->
<a id="schemaissuingvalidationerror"></a>
<a id="schema_IssuingValidationError"></a>
<a id="tocSissuingvalidationerror"></a>
<a id="tocsissuingvalidationerror"></a>

```json
{
  "request_id": "0HLHPN8802NUF:00000003",
  "error_type": "request_invalid",
  "error_codes": [
    "request_body_malformed"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|
|error_codes|[string]|false|none|none|

<h2 id="tocS_cko-request-id">cko-request-id</h2>
<!-- backwards compatibility -->
<a id="schemacko-request-id"></a>
<a id="schema_cko-request-id"></a>
<a id="tocScko-request-id"></a>
<a id="tocscko-request-id"></a>

```json
"3729b06b-5a63-4425-bc34-23dfc158ddfe"

```

ID to correlate requests.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|ID to correlate requests.|

<h2 id="tocS_add-control-group-mcc-limit-request">add-control-group-mcc-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-group-mcc-limit-request"></a>
<a id="schema_add-control-group-mcc-limit-request"></a>
<a id="tocSadd-control-group-mcc-limit-request"></a>
<a id="tocsadd-control-group-mcc-limit-request"></a>

```json
{
  "description": "string",
  "control_type": "mcc_limit",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

mcc_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|mcc_limit|[MccLimit](#schemamcclimit)|true|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

<h2 id="tocS_add-control-group-mid-limit-request">add-control-group-mid-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-group-mid-limit-request"></a>
<a id="schema_add-control-group-mid-limit-request"></a>
<a id="tocSadd-control-group-mid-limit-request"></a>
<a id="tocsadd-control-group-mid-limit-request"></a>

```json
{
  "description": "string",
  "control_type": "mid_limit",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

mid_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|mid_limit|[MidLimit](#schemamidlimit)|true|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

<h2 id="tocS_add-control-group-request-control">add-control-group-request-control</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-group-request-control"></a>
<a id="schema_add-control-group-request-control"></a>
<a id="tocSadd-control-group-request-control"></a>
<a id="tocsadd-control-group-request-control"></a>

```json
{
  "description": "string",
  "control_type": "velocity_limit",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The control to create.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-control-group-velocity-limit-request](#schemaadd-control-group-velocity-limit-request)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-control-group-mcc-limit-request](#schemaadd-control-group-mcc-limit-request)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[add-control-group-mid-limit-request](#schemaadd-control-group-mid-limit-request)|false|none|none|

<h2 id="tocS_add-control-group-request">add-control-group-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-group-request"></a>
<a id="schema_add-control-group-request"></a>
<a id="tocSadd-control-group-request"></a>
<a id="tocsadd-control-group-request"></a>

```json
{
  "description": "Block grocery shopping except Walmart",
  "fail_if": "all_fail",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "controls": [
    {
      "description": "Block the card being used for groceries",
      "control_type": "mcc_limit",
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "5422"
        ]
      }
    },
    {
      "description": "Allow the card to be used at Walmart",
      "control_type": "mid_limit",
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "1234"
        ]
      }
    }
  ]
}

```

The control group to create.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control group.|
|target_id|[IssuingTargetIdForAdd](#schemaissuingtargetidforadd)|true|none|The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.|
|fail_if|[ControlGroupCondition](#schemacontrolgroupcondition)|true|none|Sets how to determine the result of the group.|
|controls|[[add-control-group-request-control](#schemaadd-control-group-request-control)]|true|none|The controls that belong to the group.|

<h2 id="tocS_add-control-group-response">add-control-group-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-group-response"></a>
<a id="schema_add-control-group-response"></a>
<a id="tocSadd-control-group-response"></a>
<a id="tocsadd-control-group-response"></a>

```json
{
  "id": "cgr_oemoyd3otivelkhf4zcnimwdva",
  "description": "Block grocery shopping except Walmart",
  "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
  "fail_if": "all_fail",
  "controls": [
    {
      "mcc_limit": {
        "type": "block",
        "mcc_list": [
          "5422"
        ]
      },
      "description": "Block the card being used for groceries",
      "control_type": "mcc_limit"
    },
    {
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "1234"
        ]
      },
      "description": "Allow the card to be used at Walmart",
      "control_type": "mid_limit"
    }
  ],
  "is_editable": true,
  "created_date": "2023-12-06T14:01:31.7155085Z",
  "last_modified_date": "2023-12-06T14:01:31.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-groups/cgr_oemoyd3otivelkhf4zcnimwdva",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

The control group's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlGroupId](#schemaissuingcontrolgroupid)|true|none|The control group's unique identifier.|
|description|string|false|none|A description for the control group.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|fail_if|[ControlGroupCondition](#schemacontrolgroupcondition)|true|none|Sets how to determine the result of the group.|
|controls|[[add-control-group-request-control](#schemaadd-control-group-request-control)]|true|none|The controls that belong to the group.|
|is_editable|[ControlGroupIsEditable](#schemacontrolgroupiseditable)|true|none|Indicates whether the control group is set to readonly. Control groups marked as non-editable are predefined by Checkout and are not modifiable by clients.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|
|_links|[ControlGroupLinks](#schemacontrolgrouplinks)|true|none|The links related to the control group.|

<h2 id="tocS_add-control-group-velocity-limit-request">add-control-group-velocity-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-group-velocity-limit-request"></a>
<a id="schema_add-control-group-velocity-limit-request"></a>
<a id="tocSadd-control-group-velocity-limit-request"></a>
<a id="tocsadd-control-group-velocity-limit-request"></a>

```json
{
  "description": "string",
  "control_type": "velocity_limit",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

velocity_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|velocity_limit|[VelocityLimit](#schemavelocitylimit)|true|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|

<h2 id="tocS_add-control-profile-request">add-control-profile-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-profile-request"></a>
<a id="schema_add-control-profile-request"></a>
<a id="tocSadd-control-profile-request"></a>
<a id="tocsadd-control-profile-request"></a>

```json
{
  "name": "Low Risk MCC Profile"
}

```

The control profile to create

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|Control profile name.|

<h2 id="tocS_add-control-profile-target-response">add-control-profile-target-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-profile-target-response"></a>
<a id="schema_add-control-profile-target-response"></a>
<a id="tocSadd-control-profile-target-response"></a>
<a id="tocsadd-control-profile-target-response"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[ControlProfileLinks](#schemacontrolprofilelinks)|false|none|The links related to the control profile.|

<h2 id="tocS_add-update-control-profile-response">add-update-control-profile-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-update-control-profile-response"></a>
<a id="schema_add-update-control-profile-response"></a>
<a id="tocSadd-update-control-profile-response"></a>
<a id="tocsadd-update-control-profile-response"></a>

```json
{
  "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
  "name": "Low Risk MCC Profile",
  "created_date": "2024-03-12T18:13:45.7155085Z",
  "last_modified_date": "2024-03-12T18:13:45.7155085Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

The control profile's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|The control profile's unique identifier.|
|name|string|true|none|Control profile name.|
|created_date|string(date-time)|true|none|Creation date of the control profile.|
|last_modified_date|string(date-time)|true|none|none|
|_links|[ControlProfileLinks](#schemacontrolprofilelinks)|true|none|The links related to the control profile.|

<h2 id="tocS_add-control-request">add-control-request</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-request"></a>
<a id="schema_add-control-request"></a>
<a id="tocSadd-control-request"></a>
<a id="tocsadd-control-request"></a>

```json
{
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The control to create.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|target_id|[IssuingTargetIdForAdd](#schemaissuingtargetidforadd)|true|none|The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[velocity-limit-request](#schemavelocity-limit-request)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[mcc-limit-request](#schemamcc-limit-request)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[mid-limit-request](#schemamid-limit-request)|false|none|none|

<h2 id="tocS_add-control-response">add-control-response</h2>
<!-- backwards compatibility -->
<a id="schemaadd-control-response"></a>
<a id="schema_add-control-response"></a>
<a id="tocSadd-control-response"></a>
<a id="tocsadd-control-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_mbvprn5bm27ubh4c5rq5tha2wy",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The control's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|
|_links|[ControlLinks](#schemacontrollinks)|true|none|The links related to the control.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[velocity-limit-response](#schemavelocity-limit-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[mcc-limit-response](#schemamcc-limit-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[mid-limit-response](#schemamid-limit-response)|false|none|none|

<h2 id="tocS_mcc-limit-request">mcc-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemamcc-limit-request"></a>
<a id="schema_mcc-limit-request"></a>
<a id="tocSmcc-limit-request"></a>
<a id="tocsmcc-limit-request"></a>

```json
{
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

mcc_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|target_id|[IssuingTargetIdForAdd](#schemaissuingtargetidforadd)|true|none|The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.|
|mcc_limit|[MccLimit](#schemamcclimit)|true|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

<h2 id="tocS_mcc-limit-response">mcc-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemamcc-limit-response"></a>
<a id="schema_mcc-limit-response"></a>
<a id="tocSmcc-limit-response"></a>
<a id="tocsmcc-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_mbvprn5bm27ubh4c5rq5tha2wy",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

mcc_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|false|none|A description for the control.|
|control_type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingControlType](#schemaissuingcontroltype)|false|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|
|_links|[ControlLinks](#schemacontrollinks)|true|none|The links related to the control.|
|mcc_limit|[MccLimit](#schemamcclimit)|true|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|mcc_limit|

<h2 id="tocS_mid-limit-request">mid-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemamid-limit-request"></a>
<a id="schema_mid-limit-request"></a>
<a id="tocSmid-limit-request"></a>
<a id="tocsmid-limit-request"></a>

```json
{
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

mid_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|target_id|[IssuingTargetIdForAdd](#schemaissuingtargetidforadd)|true|none|The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.|
|mid_limit|[MidLimit](#schemamidlimit)|true|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

<h2 id="tocS_mid-limit-response">mid-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemamid-limit-response"></a>
<a id="schema_mid-limit-response"></a>
<a id="tocSmid-limit-response"></a>
<a id="tocsmid-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_mbvprn5bm27ubh4c5rq5tha2wy",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

mid_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|false|none|A description for the control.|
|control_type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingControlType](#schemaissuingcontroltype)|false|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|
|_links|[ControlLinks](#schemacontrollinks)|true|none|The links related to the control.|
|mid_limit|[MidLimit](#schemamidlimit)|true|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|mid_limit|

<h2 id="tocS_velocity-limit-request">velocity-limit-request</h2>
<!-- backwards compatibility -->
<a id="schemavelocity-limit-request"></a>
<a id="schema_velocity-limit-request"></a>
<a id="tocSvelocity-limit-request"></a>
<a id="tocsvelocity-limit-request"></a>

```json
{
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

velocity_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|target_id|[IssuingTargetIdForAdd](#schemaissuingtargetidforadd)|true|none|The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.|
|velocity_limit|[VelocityLimit](#schemavelocitylimit)|true|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|

<h2 id="tocS_velocity-limit-response">velocity-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemavelocity-limit-response"></a>
<a id="schema_velocity-limit-response"></a>
<a id="tocSvelocity-limit-response"></a>
<a id="tocsvelocity-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2023-03-12T18:20:12Z",
  "last_modified_date": "2023-03-12T18:20:12Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_mbvprn5bm27ubh4c5rq5tha2wy",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  },
  "velocity_limit": {
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "string"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

velocity_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|false|none|A description for the control.|
|control_type|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[IssuingControlType](#schemaissuingcontroltype)|false|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|
|_links|[ControlLinks](#schemacontrollinks)|true|none|The links related to the control.|
|velocity_limit|[VelocityLimit](#schemavelocitylimit)|true|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|velocity_limit|

<h2 id="tocS_get-control-group-response">get-control-group-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-group-response"></a>
<a id="schema_get-control-group-response"></a>
<a id="tocSget-control-group-response"></a>
<a id="tocsget-control-group-response"></a>

```json
{
  "id": "cgr_oemoyd3otivelkhf4zcnimwdva",
  "description": "string",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "fail_if": "all_fail",
  "controls": [
    {
      "description": "string",
      "control_type": "velocity_limit",
      "velocity_limit": {
        "amount_limit": 50000,
        "velocity_window": {
          "type": "weekly"
        },
        "mcc_list": [
          "string"
        ],
        "mid_list": [
          "1234567890"
        ]
      }
    }
  ],
  "is_editable": true,
  "created_date": "2019-08-24T14:15:22Z",
  "last_modified_date": "2019-08-24T14:15:22Z"
}

```

The control group's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlGroupId](#schemaissuingcontrolgroupid)|true|none|The control group's unique identifier.|
|description|string|false|none|A description for the control group.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|fail_if|[ControlGroupCondition](#schemacontrolgroupcondition)|true|none|Sets how to determine the result of the group.|
|controls|[[add-control-group-request-control](#schemaadd-control-group-request-control)]|true|none|The controls that belong to the group.|
|is_editable|[ControlGroupIsEditable](#schemacontrolgroupiseditable)|true|none|Indicates whether the control group is set to readonly. Control groups marked as non-editable are predefined by Checkout and are not modifiable by clients.|
|created_date|string(date-time)|true|none|none|
|last_modified_date|string(date-time)|true|none|none|

<h2 id="tocS_get-control-groups-array-response">get-control-groups-array-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-groups-array-response"></a>
<a id="schema_get-control-groups-array-response"></a>
<a id="tocSget-control-groups-array-response"></a>
<a id="tocsget-control-groups-array-response"></a>

```json
{
  "control_groups": [
    {
      "id": "cgr_oemoyd3otivelkhf4zcnimwdva",
      "description": "Block grocery shopping except Walmart",
      "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
      "fail_if": "all_fail",
      "controls": [
        {
          "mcc_limit": {
            "type": "block",
            "mcc_list": [
              "5422"
            ]
          },
          "description": "Block the card being used for groceries",
          "control_type": "mcc_limit"
        },
        {
          "mid_limit": {
            "type": "allow",
            "mid_list": [
              "1234"
            ]
          },
          "description": "Allow the card to be used at Walmart",
          "control_type": "mid_limit"
        }
      ],
      "is_editable": true,
      "created_date": "2023-12-06T14:01:31.7155085Z",
      "last_modified_date": "2023-12-06T14:01:31.7155085Z"
    },
    {
      "id": "cgr_xvrszbgkaifuflnslzkt2uimkm",
      "description": "Allow restaurants except McDonalds",
      "target_id": "crd_dba7tjsh7utufgid7yety4gnxq",
      "fail_if": "all_fail",
      "controls": [
        {
          "mcc_limit": {
            "type": "allow",
            "mcc_list": [
              "6789"
            ]
          },
          "description": "Allow the card being used for restaurants",
          "control_type": "mcc_limit"
        },
        {
          "mid_limit": {
            "type": "block",
            "mid_list": [
              "9876"
            ]
          },
          "description": "Block the card to be used at McDonalds",
          "control_type": "mid_limit"
        }
      ],
      "is_editable": true,
      "created_date": "2023-12-06T14:01:31.7155085Z",
      "last_modified_date": "2023-12-06T14:01:31.7155085Z"
    }
  ]
}

```

The list of control groups applied to the specified target.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|control_groups|[[get-control-group-response](#schemaget-control-group-response)]|true|none|The list of control groups applied to the specified target.|

<h2 id="tocS_get-control-profile-response">get-control-profile-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-profile-response"></a>
<a id="schema_get-control-profile-response"></a>
<a id="tocSget-control-profile-response"></a>
<a id="tocsget-control-profile-response"></a>

```json
{
  "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
  "name": "string",
  "created_date": "2019-08-24T14:15:22Z",
  "last_modified_date": "2019-08-24T14:15:22Z"
}

```

The control profile's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlProfileId](#schemaissuingcontrolprofileid)|true|none|The control profile's unique identifier.|
|name|string|true|none|Control profile name.|
|created_date|string(date-time)|true|none|Creation date of the control profile.|
|last_modified_date|string(date-time)|true|none|Last modified date of the control profile.|

<h2 id="tocS_get-control-profiles-client-response">get-control-profiles-client-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-profiles-client-response"></a>
<a id="schema_get-control-profiles-client-response"></a>
<a id="tocSget-control-profiles-client-response"></a>
<a id="tocsget-control-profiles-client-response"></a>

```json
{
  "control_profiles": [
    {
      "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "name": "Low Risk MCC Profile",
      "created_date": "2024-03-12T18:13:45.7155085Z",
      "last_modified_date": "2024-03-13T15:44:56.7155085Z"
    },
    {
      "id": "cpr_53mkhdc4jjlu5jcryx76bjbrgm",
      "name": "Medium Risk MCC Profile",
      "created_date": "2024-05-05T10:43:13.7155085Z",
      "last_modified_date": "2024-06-17T06:32:18.7155085Z"
    },
    {
      "id": "cpr_j4ma3rclvgcu3pn5tsdgb3e3a4",
      "name": "High Risk MCC Profile",
      "created_date": "2024-02-29T12:55:55.7155085Z",
      "last_modified_date": "2024-03-01T10:12:12.7155085Z"
    }
  ]
}

```

The list of control profiles for the specified client.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|control_profiles|[[get-control-profile-response](#schemaget-control-profile-response)]|true|none|The list of control profiles for the specified client.|

<h2 id="tocS_get-control-mcc-limit-response">get-control-mcc-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-mcc-limit-response"></a>
<a id="schema_get-control-mcc-limit-response"></a>
<a id="tocSget-control-mcc-limit-response"></a>
<a id="tocsget-control-mcc-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "mcc_limit",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

mcc_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|[Datetime](#schemadatetime)|true|none|none|
|last_modified_date|[Datetime](#schemadatetime)|true|none|none|
|mcc_limit|[MccLimit](#schemamcclimit)|true|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

<h2 id="tocS_get-control-mid-limit-response">get-control-mid-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-mid-limit-response"></a>
<a id="schema_get-control-mid-limit-response"></a>
<a id="tocSget-control-mid-limit-response"></a>
<a id="tocsget-control-mid-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "mid_limit",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

mid_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|[Datetime](#schemadatetime)|true|none|none|
|last_modified_date|[Datetime](#schemadatetime)|true|none|none|
|mid_limit|[MidLimit](#schemamidlimit)|true|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

<h2 id="tocS_get-control-response">get-control-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-response"></a>
<a id="schema_get-control-response"></a>
<a id="tocSget-control-response"></a>
<a id="tocsget-control-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "velocity_limit": {
    "amount_remaining": 45000,
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "4121",
      "4582"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The control's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|[Datetime](#schemadatetime)|true|none|none|
|last_modified_date|[Datetime](#schemadatetime)|true|none|none|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-control-velocity-limit-response](#schemaget-control-velocity-limit-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-control-mcc-limit-response](#schemaget-control-mcc-limit-response)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[get-control-mid-limit-response](#schemaget-control-mid-limit-response)|false|none|none|

<h2 id="tocS_get-control-velocity-limit-response">get-control-velocity-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-control-velocity-limit-response"></a>
<a id="schema_get-control-velocity-limit-response"></a>
<a id="tocSget-control-velocity-limit-response"></a>
<a id="tocsget-control-velocity-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "velocity_limit": {
    "amount_remaining": 45000,
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "4121",
      "4582"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

velocity_limit

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|description|string|true|none|A description for the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|[Datetime](#schemadatetime)|true|none|none|
|last_modified_date|[Datetime](#schemadatetime)|true|none|none|
|velocity_limit|[VelocityLimitWithRemainingAmount](#schemavelocitylimitwithremainingamount)|true|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|

<h2 id="tocS_get-controls-array-response">get-controls-array-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-controls-array-response"></a>
<a id="schema_get-controls-array-response"></a>
<a id="tocSget-controls-array-response"></a>
<a id="tocsget-controls-array-response"></a>

```json
{
  "controls": [
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Maximum spend of 500€ per week for restaurants",
      "control_type": "velocity_limit",
      "is_editable": true,
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "velocity_limit": {
        "amount_remaining": 45000,
        "amount_limit": 50000,
        "velocity_window": {
          "type": "weekly"
        },
        "mcc_list": [
          "4121",
          "4582"
        ]
      }
    },
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Allow the card to be used only in restaurants and supermarkets",
      "control_type": "mcc_limit",
      "is_editable": true,
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "mcc_limit": {
        "type": "allow",
        "mcc_list": [
          "5932",
          "5411"
        ]
      }
    },
    {
      "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
      "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
      "description": "Allow the card to be used only in AZ Pizza",
      "control_type": "mid_limit",
      "is_editable": true,
      "created_date": "2021-09-09T19:41:39Z",
      "last_modified_date": "2021-09-09T19:41:39Z",
      "mid_limit": {
        "type": "allow",
        "mid_list": [
          "593278",
          "541114"
        ]
      }
    }
  ]
}

```

The list of controls applied to the specified target.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|controls|[[get-control-response](#schemaget-control-response)]|true|none|The list of controls applied to the specified target.|

<h2 id="tocS_ControlGroupCondition">ControlGroupCondition</h2>
<!-- backwards compatibility -->
<a id="schemacontrolgroupcondition"></a>
<a id="schema_ControlGroupCondition"></a>
<a id="tocScontrolgroupcondition"></a>
<a id="tocscontrolgroupcondition"></a>

```json
"all_fail"

```

Sets how to determine the result of the group.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Sets how to determine the result of the group.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|all_fail|
|*anonymous*|any_fail|

<h2 id="tocS_ControlGroupIsEditable">ControlGroupIsEditable</h2>
<!-- backwards compatibility -->
<a id="schemacontrolgroupiseditable"></a>
<a id="schema_ControlGroupIsEditable"></a>
<a id="tocScontrolgroupiseditable"></a>
<a id="tocscontrolgroupiseditable"></a>

```json
true

```

Indicates whether the control group is set to readonly. Control groups marked as non-editable are predefined by Checkout and are not modifiable by clients.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|boolean|false|none|Indicates whether the control group is set to readonly. Control groups marked as non-editable are predefined by Checkout and are not modifiable by clients.|

<h2 id="tocS_ControlGroupLinks">ControlGroupLinks</h2>
<!-- backwards compatibility -->
<a id="schemacontrolgrouplinks"></a>
<a id="schema_ControlGroupLinks"></a>
<a id="tocScontrolgrouplinks"></a>
<a id="tocscontrolgrouplinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls/control-groups/cgr_oemoyd3otivelkhf4zcnimwdva",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the control group.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the control group's details.|

<h2 id="tocS_ControlIsEditable">ControlIsEditable</h2>
<!-- backwards compatibility -->
<a id="schemacontroliseditable"></a>
<a id="schema_ControlIsEditable"></a>
<a id="tocScontroliseditable"></a>
<a id="tocscontroliseditable"></a>

```json
true

```

Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|boolean|false|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|

<h2 id="tocS_ControlLinks">ControlLinks</h2>
<!-- backwards compatibility -->
<a id="schemacontrollinks"></a>
<a id="schema_ControlLinks"></a>
<a id="tocScontrollinks"></a>
<a id="tocscontrollinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_mbvprn5bm27ubh4c5rq5tha2wy",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the control.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the control's details.|

<h2 id="tocS_ControlProfileLinks">ControlProfileLinks</h2>
<!-- backwards compatibility -->
<a id="schemacontrolprofilelinks"></a>
<a id="schema_ControlProfileLinks"></a>
<a id="tocScontrolprofilelinks"></a>
<a id="tocscontrolprofilelinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
    "actions": [
      "GET"
    ],
    "types": [
      "application/json"
    ]
  }
}

```

The links related to the control profile.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[IssuingLink](#schemaissuinglink)|true|none|The URI to retrieve the control profile's details.|

<h2 id="tocS_IssuingControlGroupId">IssuingControlGroupId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcontrolgroupid"></a>
<a id="schema_IssuingControlGroupId"></a>
<a id="tocSissuingcontrolgroupid"></a>
<a id="tocsissuingcontrolgroupid"></a>

```json
"cgr_oemoyd3otivelkhf4zcnimwdva"

```

The control group's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The control group's unique identifier.|

<h2 id="tocS_IssuingControlId">IssuingControlId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcontrolid"></a>
<a id="schema_IssuingControlId"></a>
<a id="tocSissuingcontrolid"></a>
<a id="tocsissuingcontrolid"></a>

```json
"ctr_gp7vkmxayztufjz6top5bjcdra"

```

The control's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The control's unique identifier.|

<h2 id="tocS_IssuingControlProfileId">IssuingControlProfileId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcontrolprofileid"></a>
<a id="schema_IssuingControlProfileId"></a>
<a id="tocSissuingcontrolprofileid"></a>
<a id="tocsissuingcontrolprofileid"></a>

```json
"cpr_j4mvlui5qotufgvaeqwhvlbfna"

```

The control profile's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The control profile's unique identifier.|

<h2 id="tocS_IssuingControlType">IssuingControlType</h2>
<!-- backwards compatibility -->
<a id="schemaissuingcontroltype"></a>
<a id="schema_IssuingControlType"></a>
<a id="tocSissuingcontroltype"></a>
<a id="tocsissuingcontroltype"></a>

```json
"velocity_limit"

```

The control's type.

A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|velocity_limit|
|*anonymous*|mcc_limit|
|*anonymous*|mid_limit|

<h2 id="tocS_IssuingTargetId">IssuingTargetId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtargetid"></a>
<a id="schema_IssuingTargetId"></a>
<a id="tocSissuingtargetid"></a>
<a id="tocsissuingtargetid"></a>

```json
"crd_fa6psq42dcdd6fdn5gifcq1491"

```

The ID of the card or control profile.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The ID of the card or control profile.|

<h2 id="tocS_IssuingTargetIdForAdd">IssuingTargetIdForAdd</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtargetidforadd"></a>
<a id="schema_IssuingTargetIdForAdd"></a>
<a id="tocSissuingtargetidforadd"></a>
<a id="tocsissuingtargetidforadd"></a>

```json
"crd_fa6psq42dcdd6fdn5gifcq1491"

```

The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The ID of the card or control profile to apply the control to. Note that control profiles cannot be a target for `velocity_limit` controls.|

<h2 id="tocS_IssuingTargetIdToAddToControlProfile">IssuingTargetIdToAddToControlProfile</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtargetidtoaddtocontrolprofile"></a>
<a id="schema_IssuingTargetIdToAddToControlProfile"></a>
<a id="tocSissuingtargetidtoaddtocontrolprofile"></a>
<a id="tocsissuingtargetidtoaddtocontrolprofile"></a>

```json
"crd_fa6psq42dcdd6fdn5gifcq1491"

```

The ID of the card to apply the control profile to.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The ID of the card to apply the control profile to.|

<h2 id="tocS_IssuingTargetIdToRemoveFromControlProfile">IssuingTargetIdToRemoveFromControlProfile</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtargetidtoremovefromcontrolprofile"></a>
<a id="schema_IssuingTargetIdToRemoveFromControlProfile"></a>
<a id="tocSissuingtargetidtoremovefromcontrolprofile"></a>
<a id="tocsissuingtargetidtoremovefromcontrolprofile"></a>

```json
"crd_fa6psq42dcdd6fdn5gifcq1491"

```

The ID of the card the control profile should no longer apply to.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The ID of the card the control profile should no longer apply to.|

<h2 id="tocS_MccLimit">MccLimit</h2>
<!-- backwards compatibility -->
<a id="schemamcclimit"></a>
<a id="schema_MccLimit"></a>
<a id="tocSmcclimit"></a>
<a id="tocsmcclimit"></a>

```json
{
  "type": "allow",
  "mcc_list": [
    "5932",
    "5411"
  ]
}

```

The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|Sets whether to allow or block the list of MCCs supplied.|
|mcc_list|[string]|true|none|The list of <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">MCCs</a> to allow or block transactions from, as 4-digit ISO 18245 codes.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|allow|
|type|block|

<h2 id="tocS_MidCode">MidCode</h2>
<!-- backwards compatibility -->
<a id="schemamidcode"></a>
<a id="schema_MidCode"></a>
<a id="tocSmidcode"></a>
<a id="tocsmidcode"></a>

```json
"string"

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|none|

<h2 id="tocS_MidLimit">MidLimit</h2>
<!-- backwards compatibility -->
<a id="schemamidlimit"></a>
<a id="schema_MidLimit"></a>
<a id="tocSmidlimit"></a>
<a id="tocsmidlimit"></a>

```json
{
  "type": "allow",
  "mid_list": [
    "593278",
    "541114"
  ]
}

```

The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|Sets whether to allow or block the list of MIDs supplied.|
|mid_list|[[MidCode](#schemamidcode)]|true|none|The list of merchant identification (MID) codes to allow or block transactions from.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|allow|
|type|block|

<h2 id="tocS_VelocityLimit">VelocityLimit</h2>
<!-- backwards compatibility -->
<a id="schemavelocitylimit"></a>
<a id="schema_VelocityLimit"></a>
<a id="tocSvelocitylimit"></a>
<a id="tocsvelocitylimit"></a>

```json
{
  "amount_limit": 50000,
  "velocity_window": {
    "type": "weekly"
  },
  "mcc_list": [
    "string"
  ],
  "mid_list": [
    "1234567890"
  ]
}

```

The velocity limit, which determines how much a target card can spend over a given timeframe.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount_limit|integer(int64)|true|none|The amount the target can spend, in minor units.|
|velocity_window|[VelocityWindow](#schemavelocitywindow)|true|none|The period of time over which the specified `amount_limit` can be spent.|
|mcc_list|[string]|false|none|The list of <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category codes</a> (MCCs) that the velocity limit applies to, as four-digit ISO 18245 codes.|
|mid_list|[[MidCode](#schemamidcode)]|false|none|The list of merchant identification (MID) codes to allow or block transactions from. <br/> You can provide either `mcc_list` or `mid_list`, but not both.|

<h2 id="tocS_VelocityLimitWithRemainingAmount">VelocityLimitWithRemainingAmount</h2>
<!-- backwards compatibility -->
<a id="schemavelocitylimitwithremainingamount"></a>
<a id="schema_VelocityLimitWithRemainingAmount"></a>
<a id="tocSvelocitylimitwithremainingamount"></a>
<a id="tocsvelocitylimitwithremainingamount"></a>

```json
{
  "amount_remaining": 45000,
  "amount_limit": 50000,
  "velocity_window": {
    "type": "weekly"
  },
  "mcc_list": [
    "4121",
    "4582"
  ],
  "mid_list": [
    "1234567890"
  ]
}

```

The velocity limit, which determines how much a target card can spend over a given timeframe.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount_remaining|integer(int64)|true|none|The remaining amount that can be spent, in minor units.|
|amount_limit|integer(int64)|true|none|The amount that can be spent, in minor units.|
|velocity_window|[VelocityWindow](#schemavelocitywindow)|true|none|The period of time over which the specified `amount_limit` can be spent.|
|mcc_list|[string]|false|none|The list of <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category codes</a> (MCCs) that the velocity limit applies to, as four-digit ISO 18245 codes.|
|mid_list|[string]|false|none|The list of merchant identification (MID) codes to allow or block transactions from. <br/> You can provide either `mcc_list` or `mid_list`, but not both.|

<h2 id="tocS_VelocityWindow">VelocityWindow</h2>
<!-- backwards compatibility -->
<a id="schemavelocitywindow"></a>
<a id="schema_VelocityWindow"></a>
<a id="tocSvelocitywindow"></a>
<a id="tocsvelocitywindow"></a>

```json
{
  "type": "weekly"
}

```

The period of time over which the specified `amount_limit` can be spent.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The velocity window's unit of time.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|daily|
|type|weekly|
|type|monthly|
|type|all_time|

<h2 id="tocS_remove-control-group-response">remove-control-group-response</h2>
<!-- backwards compatibility -->
<a id="schemaremove-control-group-response"></a>
<a id="schema_remove-control-group-response"></a>
<a id="tocSremove-control-group-response"></a>
<a id="tocsremove-control-group-response"></a>

```json
{
  "id": "cgr_oemoyd3otivelkhf4zcnimwdva"
}

```

The control groups's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlGroupId](#schemaissuingcontrolgroupid)|true|none|The control group's unique identifier.|

<h2 id="tocS_remove-control-profile-target-response">remove-control-profile-target-response</h2>
<!-- backwards compatibility -->
<a id="schemaremove-control-profile-target-response"></a>
<a id="schema_remove-control-profile-target-response"></a>
<a id="tocSremove-control-profile-target-response"></a>
<a id="tocsremove-control-profile-target-response"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|[ControlProfileLinks](#schemacontrolprofilelinks)|false|none|The links related to the control profile.|

<h2 id="tocS_remove-control-response">remove-control-response</h2>
<!-- backwards compatibility -->
<a id="schemaremove-control-response"></a>
<a id="schema_remove-control-response"></a>
<a id="tocSremove-control-response"></a>
<a id="tocsremove-control-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra"
}

```

The control's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|

<h2 id="tocS_update-control-profile-request">update-control-profile-request</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-profile-request"></a>
<a id="schema_update-control-profile-request"></a>
<a id="tocSupdate-control-profile-request"></a>
<a id="tocsupdate-control-profile-request"></a>

```json
{
  "name": "Low Risk MCC Profile"
}

```

The control profile to update.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|The control profile name.|

<h2 id="tocS_update-control-mcc-limit-response">update-control-mcc-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-mcc-limit-response"></a>
<a id="schema_update-control-mcc-limit-response"></a>
<a id="tocSupdate-control-mcc-limit-response"></a>
<a id="tocsupdate-control-mcc-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

### Properties

allOf - discriminator: update-control-response.control_type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[update-control-response](#schemaupdate-control-response)|false|none|The control's details.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» mcc_limit|[MccLimit](#schemamcclimit)|false|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|
|» description|string|false|none|A description for the control.|

<h2 id="tocS_update-control-mid-limit-response">update-control-mid-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-mid-limit-response"></a>
<a id="schema_update-control-mid-limit-response"></a>
<a id="tocSupdate-control-mid-limit-response"></a>
<a id="tocsupdate-control-mid-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Allow the card to be used only in AZ Pizza",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

### Properties

allOf - discriminator: update-control-response.control_type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[update-control-response](#schemaupdate-control-response)|false|none|The control's details.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» mid_limit|[MidLimit](#schemamidlimit)|false|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|
|» description|string|false|none|A description for the control.|

<h2 id="tocS_update-control-request-mcc-limit">update-control-request-mcc-limit</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-request-mcc-limit"></a>
<a id="schema_update-control-request-mcc-limit"></a>
<a id="tocSupdate-control-request-mcc-limit"></a>
<a id="tocsupdate-control-request-mcc-limit"></a>

```json
{
  "description": "Allow the card to be used only in restaurants and supermarkets",
  "mcc_limit": {
    "type": "allow",
    "mcc_list": [
      "5932",
      "5411"
    ]
  }
}

```

The control you want to update.

You can update only one control per request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|mcc_limit|[MccLimit](#schemamcclimit)|false|none|The <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category code (MCC)</a> rule, which determines the types of businesses transactions can be processed from.|

<h2 id="tocS_update-control-request-mid-limit">update-control-request-mid-limit</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-request-mid-limit"></a>
<a id="schema_update-control-request-mid-limit"></a>
<a id="tocSupdate-control-request-mid-limit"></a>
<a id="tocsupdate-control-request-mid-limit"></a>

```json
{
  "description": "Allow the card to be used only in AZ Pizza",
  "mid_limit": {
    "type": "allow",
    "mid_list": [
      "593278",
      "541114"
    ]
  }
}

```

The control you want to update.

You can only update one control per request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|mid_limit|[MidLimit](#schemamidlimit)|false|none|The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed.|

<h2 id="tocS_update-control-request-velocity-limit">update-control-request-velocity-limit</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-request-velocity-limit"></a>
<a id="schema_update-control-request-velocity-limit"></a>
<a id="tocSupdate-control-request-velocity-limit"></a>
<a id="tocsupdate-control-request-velocity-limit"></a>

```json
{
  "description": "Max spend of 500€ per week for restaurants",
  "velocity_limit": {
    "amount_limit": 50000,
    "mcc_list": [
      "4121",
      "4582"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

The control you want to update.

You can only update one control per request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|false|none|A description for the control.|
|velocity_limit|object|false|none|The velocity limit, which determines how much a card can spend over a given period of time.|
|» amount_limit|integer(int64)|false|none|The amount that can be spent using the card, in minor units.|
|» mcc_list|[string]|false|none|The list of <a href= "https://www.checkout.com/docs/resources/codes/merchant-category-codes">merchant category codes (MCCs)</a> that the velocity limit applies to, as 4-digit ISO 18245 codes.|
|» mid_list|[string]|false|none|The list of merchant identification (MID) codes to allow or block transactions from. Note that `mcc_list` and `mid_list` cannot be set together.|

<h2 id="tocS_update-control-response">update-control-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-response"></a>
<a id="schema_update-control-response"></a>
<a id="tocSupdate-control-response"></a>
<a id="tocsupdate-control-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Max spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z"
}

```

The control's details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingControlId](#schemaissuingcontrolid)|true|none|The control's unique identifier.|
|description|string|false|none|The description of the control.|
|control_type|[IssuingControlType](#schemaissuingcontroltype)|true|none|The control's type.<br><br>A `velocity_limit` determines how much can be spent over a given period of time. An `mcc_limit` determines the types of businesses from which transactions can be processed. A `mid_limit` specifies the merchants from whom transactions can be processed.|
|target_id|[IssuingTargetId](#schemaissuingtargetid)|true|none|The ID of the card or control profile.|
|is_editable|[ControlIsEditable](#schemacontroliseditable)|true|none|Indicates whether you can change this control. <br> `false` This is an immutable control applied by Checkout.com and you cannot change it. <br> `true` You applied this control and can change it.|
|created_date|[Datetime](#schemadatetime)|true|none|none|
|last_modified_date|[Datetime](#schemadatetime)|true|none|none|

<h2 id="tocS_update-control-velocity-limit-response">update-control-velocity-limit-response</h2>
<!-- backwards compatibility -->
<a id="schemaupdate-control-velocity-limit-response"></a>
<a id="schema_update-control-velocity-limit-response"></a>
<a id="tocSupdate-control-velocity-limit-response"></a>
<a id="tocsupdate-control-velocity-limit-response"></a>

```json
{
  "id": "ctr_gp7vkmxayztufjz6top5bjcdra",
  "description": "Maximum spend of 500€ per week for restaurants",
  "control_type": "velocity_limit",
  "target_id": "crd_fa6psq42dcdd6fdn5gifcq1491",
  "is_editable": true,
  "created_date": "2021-09-09T19:41:39Z",
  "last_modified_date": "2021-09-09T19:41:39Z",
  "velocity_limit": {
    "amount_remaining": 45000,
    "amount_limit": 50000,
    "velocity_window": {
      "type": "weekly"
    },
    "mcc_list": [
      "4121",
      "4582"
    ],
    "mid_list": [
      "1234567890"
    ]
  }
}

```

### Properties

allOf - discriminator: update-control-response.control_type

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[update-control-response](#schemaupdate-control-response)|false|none|The control's details.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» velocity_limit|[VelocityLimitWithRemainingAmount](#schemavelocitylimitwithremainingamount)|false|none|The velocity limit, which determines how much a target card can spend over a given timeframe.|
|» description|string|false|none|A description for the control.|

<h2 id="tocS_amend-dispute-request">amend-dispute-request</h2>
<!-- backwards compatibility -->
<a id="schemaamend-dispute-request"></a>
<a id="schema_amend-dispute-request"></a>
<a id="tocSamend-dispute-request"></a>
<a id="tocsamend-dispute-request"></a>

```json
{
  "reason": "4807",
  "amount": 1500,
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "reason_change_justification": "New evidence confirms this was an unauthorized transaction, making reason 4837 more appropriate.",
  "action_response": "Updated reason as requested. The cardholder confirmed the goods were never delivered."
}

```

Submit an amendment to a dispute that is currently blocked from proceeding. This endpoint
handles both chargeback-stage and escalation-stage amendments using the same flat payload
as the server determines the context from the dispute's current state.

Refer to the `action_details` returned in the <a target="_blank" href="https://api-reference.checkout.com/tag/Issuing-disputes#operation/getDispute">Get issuing dispute</a> endpoint to view the instructions provided by the Dispute Resolution team and the deadline by which you must submit amendments.

If `reason` specifies a fraud-related dispute, you must provide `fraud_details`.
If you change the `reason` at the escalation stage,  you must provide `reason_change_justification`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reason|string|false|none|The updated four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard).<br>If a value is not provided, the existing reason code is retained.|
|amount|number|false|none|The updated disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount)<br>of the transaction currency. If not provided, the existing amount is retained.|
|evidence|[[IssuingDisputeEvidence](#schemaissuingdisputeevidence)]|false|none|The updated or additional evidence requested by the Dispute Resolution team.<br>Follow the [card scheme's requirements](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes#Evidence_file_requirements).|
|fraud_details|[IssuingDisputeFraudDetails](#schemaissuingdisputefrauddetails)|false|none|Provides the fraud category, and additional context if available.<br><br>This field is required if `reason` specifies a fraud-related dispute.|
|reason_change_justification|string|false|none|Explains the justification for the reason change. This is shared with the Dispute Resolution review team and may be submitted to the card scheme.<br>This field is required if you change the `reason` at the escalation stage.|
|action_response|string|false|none|Free-form text that you can use to explain your choices, provide additional context, or ask questions about the requested changes.|

<h2 id="tocS_create-dispute-request">create-dispute-request</h2>
<!-- backwards compatibility -->
<a id="schemacreate-dispute-request"></a>
<a id="schema_create-dispute-request"></a>
<a id="tocScreate-dispute-request"></a>
<a id="tocscreate-dispute-request"></a>

```json
{
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "reason": "4807",
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100,
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "justification": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|transaction_id|[IssuingTransactionId](#schemaissuingtransactionid)|true|none|The transaction's unique identifier.|
|reason|string|true|none|The four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard) for the chargeback.<br>Only provide this if Checkout.com is your issuing processor.<br>Checkout.com does not validate this value.|
|evidence|[[IssuingDisputeEvidence](#schemaissuingdisputeevidence)]|false|none|Your evidence for raising the chargeback, in line with the [card scheme's requirements](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes#Evidence_file_requirements).|
|amount|number|false|none|The chargeback amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction currency. <br/><br>If not provided, Checkout.com uses the full amount of the presentment.|
|presentment_message_id|[IssuingMessageId](#schemaissuingmessageid)|false|none|The unique identifier for the disputed presentment message. <br/> <br/><br>If the transaction has multiple presentments, you must provide this field to specify the presentment you want to dispute. <br/><br/><br>If the transaction has only one presentment, you do not need to provide this field because Checkout.com uses that presentment automatically. <br/>|
|fraud_details|[IssuingDisputeFraudDetails](#schemaissuingdisputefrauddetails)|false|none|Contains all fraud-related information to be sent with the chargeback.<br><br>This field is required if the dispute has a fraud-related reason code.|
|justification|string|false|none|Short justification for raising this dispute, to be sent to the scheme.|

<h2 id="tocS_create-dispute-response">create-dispute-response</h2>
<!-- backwards compatibility -->
<a id="schemacreate-dispute-response"></a>
<a id="schema_create-dispute-response"></a>
<a id="tocScreate-dispute-response"></a>
<a id="tocscreate-dispute-response"></a>

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}

```

### Properties

*None*

<h2 id="tocS_escalate-dispute-request">escalate-dispute-request</h2>
<!-- backwards compatibility -->
<a id="schemaescalate-dispute-request"></a>
<a id="schema_escalate-dispute-request"></a>
<a id="tocSescalate-dispute-request"></a>
<a id="tocsescalate-dispute-request"></a>

```json
{
  "additional_evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100,
  "reason_change": {
    "reason": "4807",
    "justification": "string"
  },
  "fraud_details": {
    "fraud_type": "card_not_present_fraud",
    "description": "Cardholder confirmed they made no online purchases on this date."
  },
  "justification": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|additional_evidence|[[IssuingDisputeEvidence](#schemaissuingdisputeevidence)]|false|none|Your evidence for escalating the dispute, in line with the [card scheme's requirements](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes#Evidence_file_requirements).<br>If the request goes to arbitration, the card scheme ignores any evidence you provide at this stage using this request.|
|amount|number|false|none|The updated disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the representment currency.|
|reason_change|[IssuingDisputeReasonChange](#schemaissuingdisputereasonchange)|false|none|The change to the dispute reason and your justification for changing it.|
|fraud_details|[IssuingDisputeFraudDetails](#schemaissuingdisputefrauddetails)|false|none|Provides fraud-related details.<br><br> This field is required if the dispute has a fraud-related reason code at the escalation stage, or after a requested reason code change to a fraud code.|
|justification|string|true|none|Justification for escalating the dispute.|

<h2 id="tocS_get-dispute-response">get-dispute-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-dispute-response"></a>
<a id="schema_get-dispute-response"></a>
<a id="tocSget-dispute-response"></a>
<a id="tocsget-dispute-response"></a>

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}

```

The client's dispute response.

### Properties

*None*

<h2 id="tocS_IssuingDispute">IssuingDispute</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdispute"></a>
<a id="schema_IssuingDispute"></a>
<a id="tocSissuingdispute"></a>
<a id="tocsissuingdispute"></a>

```json
{
  "id": "idsp_fa6psq242dcd6fdn5gifcq1491",
  "reason": "4802",
  "disputed_amount": {
    "amount": 100,
    "currency": "USD"
  },
  "status": "processing",
  "status_reason": "chargeback_processed",
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "presentment_message_id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "merchant": {
    "id": "(*)123456789",
    "name": "Software Company",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331",
    "evidence": [
      "file_6lbss42ezvoufcb2beo76rvwly"
    ]
  },
  "created_on": "2019-08-24T14:15:22Z",
  "modified_on": "2019-08-24T14:15:22Z",
  "action_details": {
    "instructions": "string",
    "last_action_response": "string"
  },
  "chargeback": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "reason": "4802",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "justification": "string"
  },
  "representment": {
    "received_on": "2019-08-24T14:15:22Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "pre_arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ],
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "reason_change": {
      "reason": "4807",
      "justification": "string"
    },
    "justification": "string",
    "merchant_responded_on": "2019-08-24T14:15:22Z",
    "merchant_evidence": [
      {
        "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
        "description": "Goods were not received."
      }
    ]
  },
  "arbitration": {
    "submitted_on": "2025-09-10T10:11:12Z",
    "amount": {
      "amount": 100,
      "currency": "USD"
    },
    "justification": "string",
    "decided_on": "2025-01-31T10:20:30Z"
  },
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "amend": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "escalate": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cancel": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}

```

The client's dispute view.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingDisputeId](#schemaissuingdisputeid)|false|none|The unique identifier for the Issuing dispute.|
|reason|string|false|none|The four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard) you provide for the chargeback.|
|disputed_amount|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction currency.|
|status|[IssuingDisputeStatus](#schemaissuingdisputestatus)|false|none|The [dispute status](https://www.checkout.com/docs/developer-resources/codes/issuing-dispute-codes) as returned to the client.|
|status_reason|[IssuingDisputeStatusReason](#schemaissuingdisputestatusreason)|false|none|The status reason as returned to the client. An empty string indicates no status reason currently applies.|
|transaction_id|[IssuingTransactionId](#schemaissuingtransactionid)|false|none|The unique Checkout.com identifier for the transaction.|
|presentment_message_id|[IssuingMessageId](#schemaissuingmessageid)|false|none|The unique identifier for the disputed presentment message.|
|merchant|[IssuingDisputeMerchant](#schemaissuingdisputemerchant)|false|none|The details of the merchant you raised the dispute with.|
|created_on|string(date-time)|false|none|The date and time when the dispute was created, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|modified_on|string(date-time)|false|none|The date and time when the dispute was last modified, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|action_details|[IssuingDisputeActionDetails](#schemaissuingdisputeactiondetails)|false|none|Provides instructions on the amendments required before the dispute can proceed, if the dispute `status` is `action_required`.<br><br>Use the <a target="_blank" href="https://api-reference.checkout.com/tag/Issuing-disputes#operation/amendDispute">Amend an Issuing dispute</a> endpoint to submit your amendments.<br>Use the correct endpoint to send your updates as requested.|
|chargeback|[IssuingDisputeChargeback](#schemaissuingdisputechargeback)|false|none|The dispute details at the chargeback stage.|
|representment|[IssuingDisputeSecondPresentment](#schemaissuingdisputesecondpresentment)|false|none|The information provided by the merchant when they reject the chargeback and send a representment.|
|pre_arbitration|[IssuingDisputePreArbitration](#schemaissuingdisputeprearbitration)|false|none|The dispute details at the pre-arbitration stage.|
|arbitration|[IssuingDisputeArbitration](#schemaissuingdisputearbitration)|false|none|The dispute details during the arbitration stage.|
|_links|object|false|none|The links related to the dispute.|
|» self|[IssuingLink](#schemaissuinglink)|false|none|The URI for the dispute.|
|» card|[IssuingLink](#schemaissuinglink)|false|none|The URI for the card used for the disputed transaction.|
|» cardholder|[IssuingLink](#schemaissuinglink)|false|none|The URI for the cardholder who requested the chargeback.|
|» transaction|[IssuingLink](#schemaissuinglink)|false|none|The URI for the disputed transaction.|
|» amend|[IssuingLink](#schemaissuinglink)|false|none|The URI to amend and resubmit the dispute, if the dispute `status` is `action_required`.<br><br> Refer to `action_details` for the required amendments.|
|» escalate|[IssuingLink](#schemaissuinglink)|false|none|The URI for escalating the Issuing dispute.|
|» cancel|[IssuingLink](#schemaissuinglink)|false|none|The URI to cancel the dispute.|

<h2 id="tocS_IssuingDisputeActionDetails">IssuingDisputeActionDetails</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputeactiondetails"></a>
<a id="schema_IssuingDisputeActionDetails"></a>
<a id="tocSissuingdisputeactiondetails"></a>
<a id="tocsissuingdisputeactiondetails"></a>

```json
{
  "instructions": "string",
  "last_action_response": "string"
}

```

Provides instructions on the amendments required before the dispute can proceed, if the dispute `status` is `action_required`.

Use the <a target="_blank" href="https://api-reference.checkout.com/tag/Issuing-disputes#operation/amendDispute">Amend an Issuing dispute</a> endpoint to submit your amendments.
Use the correct endpoint to send your updates as requested.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|instructions|string|false|none|The amendments required before the dispute can proceed. For example, if you need to provide a reason code, or update the submitted evidence.|
|last_action_response|string|false|none|Specifies whether the dispute was previously amended and an action response was provided.|

<h2 id="tocS_IssuingDisputeArbitration">IssuingDisputeArbitration</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputearbitration"></a>
<a id="schema_IssuingDisputeArbitration"></a>
<a id="tocSissuingdisputearbitration"></a>
<a id="tocsissuingdisputearbitration"></a>

```json
{
  "submitted_on": "2025-09-10T10:11:12Z",
  "amount": {
    "amount": 100,
    "currency": "USD"
  },
  "justification": "string",
  "decided_on": "2025-01-31T10:20:30Z"
}

```

The dispute details during the arbitration stage.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|submitted_on|string(date-time)|false|none|The date and time when the arbitration was successfully escalated to the card scheme, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|amount|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The disputed amount at the arbitration stage, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount).|
|justification|string|false|none|Your justification for escalating the dispute to arbitration.|
|decided_on|string(date-time)|false|none|The date and time when the card scheme decided the arbitration case, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|

<h2 id="tocS_IssuingDisputeChargeback">IssuingDisputeChargeback</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputechargeback"></a>
<a id="schema_IssuingDisputeChargeback"></a>
<a id="tocSissuingdisputechargeback"></a>
<a id="tocsissuingdisputechargeback"></a>

```json
{
  "submitted_on": "2025-09-10T10:11:12Z",
  "reason": "4802",
  "amount": {
    "amount": 100,
    "currency": "USD"
  },
  "evidence": [
    {
      "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
      "description": "Goods were not received."
    }
  ],
  "justification": "string"
}

```

The dispute details at the chargeback stage.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|submitted_on|string(date-time)|false|none|The date and time when the chargeback was successfully submitted to the card scheme, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|reason|string|false|none|The four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard) you provide for the chargeback.|
|amount|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction currency.|
|evidence|[object]|false|none|Your evidence for the chargeback.|
|» file_id|[IssuingFileId](#schemaissuingfileid)|true|none|The unique identifier for an uploaded file.|
|» description|string|false|none|A brief description of the evidence.|
|justification|string|false|none|A brief description of why the dispute is being raised. This is forwarded to the scheme.|

<h2 id="tocS_IssuingDisputeEvidence">IssuingDisputeEvidence</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputeevidence"></a>
<a id="schema_IssuingDisputeEvidence"></a>
<a id="tocSissuingdisputeevidence"></a>
<a id="tocsissuingdisputeevidence"></a>

```json
{
  "name": "evidence.pdf",
  "content": "string",
  "description": "Goods were not received."
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|The complete file name, including the extension.|
|content|string|true|none|The base64-encoded string that represents a single JPG, PDF, TIFF, or ZIP file.<br>ZIP files can contain multiple JPG, PDF, or TIFF files.|
|description|string|false|none|A brief description of the evidence.|

<h2 id="tocS_IssuingDisputeFraudDetails">IssuingDisputeFraudDetails</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputefrauddetails"></a>
<a id="schema_IssuingDisputeFraudDetails"></a>
<a id="tocSissuingdisputefrauddetails"></a>
<a id="tocsissuingdisputefrauddetails"></a>

```json
{
  "fraud_type": "card_not_present_fraud",
  "description": "Cardholder confirmed they made no online purchases on this date."
}

```

Fraud-related information required when the dispute reason code is fraud-related.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|fraud_type|string|true|none|The type of fraud the cardholder is asserting. This can be one of:<br>  - `card_lost`: The cardholder does not have the physical card and cannot explain how it was lost.<br>  - `card_stolen`: The cardholder does not have the physical card and provided an explanation as to how it was lost. For example, their wallet was stolen.<br>  - `card_never_received`: The card was issued and mailed but was not received by the cardholder.<br>  - `fraudulent_account`: The account was opened fraudulently using a stolen, fake, or synthetic identity.<br>  - `counterfeit_card`: The cardholder has their physical card but a duplicate or altered card was used in an unauthorized card-present transaction.<br>  - `account_takeover`: A fraudster gained control of the cardholder's account or credentials. For example, they may have changed the registered address, ordered a new card, or provisioned the card to a digital wallet.<br>  - `card_not_present_fraud`: The cardholder still has the card but the card details were used in an unauthorized card-not-present transaction. For example, it was used in an ecommerce transaction, or in a mail order/telephone order (MOTO) payment.<br>  - `merchant_misrepresentation`: The merchant deliberately misled the cardholder. For example, the goods provided were sub-standard, there were hidden charges, or the services advertised were fake.<br>  - `cardholder_manipulation`: The cardholder was tricked into authorizing the transaction themselves. For example, due to a scam, an impersonation, or authorized push payment (APP) fraud.<br>  - `incorrect_processing`: A security check failed and made fraudulent activity possible. For example, a card verification value (CVV) check was not performed, or the EMV cryptogram was not validated.<br>  - `other`: The confirmed fraud does not fit any of the other fraud type categories, or there were multiple fraud types applicable to the same transaction.|
|description|string|false|none|A description of the fraud circumstances, for internal reference. This is not forwarded to the scheme.|

#### Enumerated Values

|Property|Value|
|---|---|
|fraud_type|card_lost|
|fraud_type|card_stolen|
|fraud_type|card_never_received|
|fraud_type|fraudulent_account|
|fraud_type|counterfeit_card|
|fraud_type|account_takeover|
|fraud_type|card_not_present_fraud|
|fraud_type|merchant_misrepresentation|
|fraud_type|cardholder_manipulation|
|fraud_type|incorrect_processing|
|fraud_type|other|

<h2 id="tocS_IssuingDisputeId">IssuingDisputeId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputeid"></a>
<a id="schema_IssuingDisputeId"></a>
<a id="tocSissuingdisputeid"></a>
<a id="tocsissuingdisputeid"></a>

```json
"idsp_fa6psq242dcd6fdn5gifcq1491"

```

The unique identifier for the Issuing dispute.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The unique identifier for the Issuing dispute.|

<h2 id="tocS_IssuingDisputeMerchant">IssuingDisputeMerchant</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputemerchant"></a>
<a id="schema_IssuingDisputeMerchant"></a>
<a id="tocSissuingdisputemerchant"></a>
<a id="tocsissuingdisputemerchant"></a>

```json
{
  "id": "(*)123456789",
  "name": "Software Company",
  "city": "Paris",
  "state": "",
  "country_code": "FR",
  "category_code": "5331",
  "evidence": [
    "file_6lbss42ezvoufcb2beo76rvwly"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The merchant's identifier. This can vary from one acquirer to another.|
|name|string|false|none|The merchant's name.|
|city|string|false|none|The city where the merchant is located.|
|state|string|false|none|The state where the merchant is located (US only).|
|country_code|string|false|none|The two-digit [country code](https://www.checkout.com/docs/developer-resources/codes/country-codes) where the merchant is located.|
|category_code|string|false|none|The merchant's [category code](https://www.checkout.com/docs/developer-resources/testing/codes/merchant-category-codes) for the disputed transaction.|
|evidence|[[IssuingFileId](#schemaissuingfileid)]|false|none|Any evidence submitted by the merchant during the dispute lifecycle.|

<h2 id="tocS_IssuingDisputePreArbitration">IssuingDisputePreArbitration</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputeprearbitration"></a>
<a id="schema_IssuingDisputePreArbitration"></a>
<a id="tocSissuingdisputeprearbitration"></a>
<a id="tocsissuingdisputeprearbitration"></a>

```json
{
  "submitted_on": "2025-09-10T10:11:12Z",
  "evidence": [
    {
      "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
      "description": "Goods were not received."
    }
  ],
  "amount": {
    "amount": 100,
    "currency": "USD"
  },
  "reason_change": {
    "reason": "4807",
    "justification": "string"
  },
  "justification": "string",
  "merchant_responded_on": "2019-08-24T14:15:22Z",
  "merchant_evidence": [
    {
      "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
      "description": "Goods were not received."
    }
  ]
}

```

The dispute details at the pre-arbitration stage.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|submitted_on|string(date-time)|false|none|The date and time when the pre-arbitration was successfully escalated to the card scheme, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|evidence|[object]|false|none|The evidence relating to the Issuing dispute provided at the pre-arbitration stage.|
|» file_id|[IssuingFileId](#schemaissuingfileid)|true|none|The unique identifier for an uploaded file.|
|» description|string|false|none|A brief description of the evidence.|
|amount|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The disputed amount at the pre-arbitration stage, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount).|
|reason_change|[IssuingDisputeReasonChange](#schemaissuingdisputereasonchange)|false|none|The change to the dispute reason and your justification for changing it.|
|justification|string|false|none|Your justification for escalating the dispute to pre-arbitration.|
|merchant_responded_on|string(date-time)|false|none|The date and time when the merchant provided evidence against the pre-arbitration, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|merchant_evidence|[object]|false|none|none|
|» file_id|[IssuingFileId](#schemaissuingfileid)|true|none|The unique identifier for an uploaded file.|
|» description|string|false|none|A brief description of the evidence.|

<h2 id="tocS_IssuingDisputeReasonChange">IssuingDisputeReasonChange</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputereasonchange"></a>
<a id="schema_IssuingDisputeReasonChange"></a>
<a id="tocSissuingdisputereasonchange"></a>
<a id="tocsissuingdisputereasonchange"></a>

```json
{
  "reason": "4807",
  "justification": "string"
}

```

The change to the dispute reason and your justification for changing it.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reason|string|true|none|The updated four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes) for the chargeback.|
|justification|string|true|none|Your justification for changing the dispute reason.|

<h2 id="tocS_IssuingDisputeSecondPresentment">IssuingDisputeSecondPresentment</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputesecondpresentment"></a>
<a id="schema_IssuingDisputeSecondPresentment"></a>
<a id="tocSissuingdisputesecondpresentment"></a>
<a id="tocsissuingdisputesecondpresentment"></a>

```json
{
  "received_on": "2019-08-24T14:15:22Z",
  "amount": {
    "amount": 100,
    "currency": "USD"
  },
  "evidence": [
    {
      "file_id": "file_6lbss42ezvoufcb2beo76rvwly",
      "description": "Goods were not received."
    }
  ]
}

```

The information provided by the merchant when they reject the chargeback and send a representment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|received_on|string(date-time)|false|none|The date and time when you received the representment, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`|
|amount|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The representment amount, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount).|
|evidence|[object]|false|none|The evidence provided by the merchant against the chargeback.|
|» file_id|[IssuingFileId](#schemaissuingfileid)|true|none|The unique identifier for an uploaded file.|
|» description|string|false|none|A brief description of the evidence.|

<h2 id="tocS_IssuingDisputeStatus">IssuingDisputeStatus</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputestatus"></a>
<a id="schema_IssuingDisputeStatus"></a>
<a id="tocSissuingdisputestatus"></a>
<a id="tocsissuingdisputestatus"></a>

```json
"processing"

```

The [dispute status](https://www.checkout.com/docs/developer-resources/codes/issuing-dispute-codes) as returned to the client.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The [dispute status](https://www.checkout.com/docs/developer-resources/codes/issuing-dispute-codes) as returned to the client.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|created|
|*anonymous*|canceled|
|*anonymous*|processing|
|*anonymous*|action_required|
|*anonymous*|won|
|*anonymous*|lost|

<h2 id="tocS_IssuingDisputeStatusReason">IssuingDisputeStatusReason</h2>
<!-- backwards compatibility -->
<a id="schemaissuingdisputestatusreason"></a>
<a id="schema_IssuingDisputeStatusReason"></a>
<a id="tocSissuingdisputestatusreason"></a>
<a id="tocsissuingdisputestatusreason"></a>

```json
"chargeback_processed"

```

The status reason as returned to the client. An empty string indicates no status reason currently applies.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The status reason as returned to the client. An empty string indicates no status reason currently applies.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*||
|*anonymous*|expired|
|*anonymous*|chargeback_pending|
|*anonymous*|chargeback_change_requested|
|*anonymous*|chargeback_evidence_invalid_or_insufficient|
|*anonymous*|chargeback_processed|
|*anonymous*|chargeback_rejected|
|*anonymous*|chargeback_reversal_pending|
|*anonymous*|chargeback_reversed|
|*anonymous*|chargeback_response_accepted|
|*anonymous*|prearbitration_pending|
|*anonymous*|escalation_change_requested|
|*anonymous*|prearbitration_evidence_invalid_or_insufficient|
|*anonymous*|prearbitration_processed|
|*anonymous*|prearbitration_rejected|
|*anonymous*|prearbitration_reversal_pending|
|*anonymous*|prearbitration_reversed|
|*anonymous*|prearbitration_response_accepted|
|*anonymous*|arbitration_pending|
|*anonymous*|arbitration_processed|
|*anonymous*|presentment_reversed|

<h2 id="tocS_submit-dispute-request">submit-dispute-request</h2>
<!-- backwards compatibility -->
<a id="schemasubmit-dispute-request"></a>
<a id="schema_submit-dispute-request"></a>
<a id="tocSsubmit-dispute-request"></a>
<a id="tocssubmit-dispute-request"></a>

```json
{
  "reason": "4807",
  "evidence": [
    {
      "name": "evidence.pdf",
      "content": "string",
      "description": "Goods were not received."
    }
  ],
  "amount": 100
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reason|string|false|none|The updated four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard). <br>If not provided, Checkout.com uses the existing reason code.|
|evidence|[[IssuingDisputeEvidence](#schemaissuingdisputeevidence)]|false|none|Your evidence for the chargeback, if updated since you created the dispute.|
|amount|number|false|none|The updated disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction or representment currency.<br>If not provided, Checkout.com uses the existing disputed amount.|

<h2 id="tocS_OobSimulateTransactionDetails">OobSimulateTransactionDetails</h2>
<!-- backwards compatibility -->
<a id="schemaoobsimulatetransactiondetails"></a>
<a id="schema_OobSimulateTransactionDetails"></a>
<a id="tocSoobsimulatetransactiondetails"></a>
<a id="tocsoobsimulatetransactiondetails"></a>

```json
{
  "last_four": "1234",
  "merchant_name": "Acme Ltd",
  "purchase_amount": 100,
  "purchase_currency": "USD"
}

```

Details for the simulated transaction.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|last_four|[LastFour](#schemalastfour)|false|none|The last four digits of the card number, also known as the PAN.|
|merchant_name|string|false|none|The merchant's name.|
|purchase_amount|number|false|none|The amount of the simulated transaction.|
|purchase_currency|[IssuingCurrency](#schemaissuingcurrency)|false|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|

<h2 id="tocS_simulate-oob-authentication-request">simulate-oob-authentication-request</h2>
<!-- backwards compatibility -->
<a id="schemasimulate-oob-authentication-request"></a>
<a id="schema_simulate-oob-authentication-request"></a>
<a id="tocSsimulate-oob-authentication-request"></a>
<a id="tocssimulate-oob-authentication-request"></a>

```json
{
  "card_id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "transaction_details": {
    "last_four": "1234",
    "merchant_name": "Acme Ltd",
    "purchase_amount": 100,
    "purchase_currency": "USD"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|card_id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|transaction_details|[OobSimulateTransactionDetails](#schemaoobsimulatetransactiondetails)|false|none|Details for the simulated transaction.|

<h2 id="tocS_get-transaction-response">get-transaction-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-transaction-response"></a>
<a id="schema_get-transaction-response"></a>
<a id="tocSget-transaction-response"></a>
<a id="tocsget-transaction-response"></a>

```json
{
  "id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "created_on": "2019-08-24T14:15:22Z",
  "status": "authorized",
  "transaction_type": "purchase",
  "client": {
    "id": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
  },
  "entity": {
    "id": "ent_fa6psq242dcd6fdn5gifcq1491"
  },
  "card": {
    "id": "crd_fa6psq242dcd6fdn5gifcq1491",
    "network": "mastercard"
  },
  "digital_card": {
    "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
    "wallet_type": "googlepay"
  },
  "cardholder": {
    "id": "crh_d3ozhf43pcq2xbldn2g45qnb44"
  },
  "amounts": {
    "total_held": {
      "amount": 100,
      "currency": "USD"
    },
    "total_authorized": {
      "amount": 100,
      "currency": "USD"
    },
    "total_reversed": {
      "amount": 100,
      "currency": "USD"
    },
    "total_cleared": {
      "amount": 100,
      "currency": "USD"
    },
    "total_refunded": {
      "amount": 100,
      "currency": "USD"
    }
  },
  "merchant": {
    "id": "(*)123456789",
    "name": "My Merchant",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331"
  },
  "reference_transaction": {
    "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
    "reference_type": "original_mit"
  },
  "messages": [
    {
      "id": "msg_fa6psq242dcd6fdn5gifcq1491",
      "initiator": "cardholder",
      "type": "authorization",
      "result": "declined",
      "is_relayed": true,
      "indicator": "incremental_preauthorization",
      "decline_reason": "expiry_date_invalid",
      "authorization_code": "03C0C0",
      "billing_amount": 100,
      "billing_currency": "USD",
      "transaction_amount": 100,
      "transaction_currency": "USD",
      "created_on": "2019-09-10T10:11:12Z"
    }
  ],
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "reference_transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}

```

### Properties

*None*

<h2 id="tocS_get-transactions-response">get-transactions-response</h2>
<!-- backwards compatibility -->
<a id="schemaget-transactions-response"></a>
<a id="schema_get-transactions-response"></a>
<a id="tocSget-transactions-response"></a>
<a id="tocsget-transactions-response"></a>

```json
{
  "limit": 5,
  "skip": 10,
  "total_count": 100,
  "data": [
    {
      "id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
      "created_on": "2019-08-24T14:15:22Z",
      "status": "authorized",
      "transaction_type": "purchase",
      "client": {
        "id": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
      },
      "entity": {
        "id": "ent_fa6psq242dcd6fdn5gifcq1491"
      },
      "card": {
        "id": "crd_fa6psq242dcd6fdn5gifcq1491",
        "network": "mastercard"
      },
      "digital_card": {
        "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
        "wallet_type": "googlepay"
      },
      "cardholder": {
        "id": "crh_d3ozhf43pcq2xbldn2g45qnb44"
      },
      "amounts": {
        "total_held": {
          "amount": 100,
          "currency": "USD"
        },
        "total_authorized": {
          "amount": 100,
          "currency": "USD"
        },
        "total_reversed": {
          "amount": 100,
          "currency": "USD"
        },
        "total_cleared": {
          "amount": 100,
          "currency": "USD"
        },
        "total_refunded": {
          "amount": 100,
          "currency": "USD"
        }
      },
      "merchant": {
        "id": "(*)123456789",
        "name": "My Merchant",
        "city": "Paris",
        "state": "",
        "country_code": "FR",
        "category_code": "5331"
      },
      "reference_transaction": {
        "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
        "reference_type": "original_mit"
      },
      "messages": [
        {
          "id": "msg_fa6psq242dcd6fdn5gifcq1491",
          "initiator": "cardholder",
          "type": "authorization",
          "result": "declined",
          "is_relayed": true,
          "indicator": "incremental_preauthorization",
          "decline_reason": "expiry_date_invalid",
          "authorization_code": "03C0C0",
          "billing_amount": 100,
          "billing_currency": "USD",
          "transaction_amount": 100,
          "transaction_currency": "USD",
          "created_on": "2019-09-10T10:11:12Z"
        }
      ],
      "_links": {
        "self": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        },
        "card": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        },
        "cardholder": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        },
        "reference_transaction": {
          "href": "string",
          "actions": [
            "GET"
          ],
          "types": [
            "string"
          ]
        }
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|limit|integer|false|none|The requested maximum number of transactions returned.|
|skip|integer|false|none|The requested number of transactions to skip.|
|total_count|integer|false|none|The total count of available transactions.|
|data|[allOf]|false|none|A list of transactions.|

<h2 id="tocS_IssuingMessageId">IssuingMessageId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingmessageid"></a>
<a id="schema_IssuingMessageId"></a>
<a id="tocSissuingmessageid"></a>
<a id="tocsissuingmessageid"></a>

```json
"msg_fa6psq242dcd6fdn5gifcq1491"

```

The message's unique Checkout.com identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The message's unique Checkout.com identifier.|

<h2 id="tocS_IssuingReferenceTransaction">IssuingReferenceTransaction</h2>
<!-- backwards compatibility -->
<a id="schemaissuingreferencetransaction"></a>
<a id="schema_IssuingReferenceTransaction"></a>
<a id="tocSissuingreferencetransaction"></a>
<a id="tocsissuingreferencetransaction"></a>

```json
{
  "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "reference_type": "original_mit"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|transaction_id|[IssuingTransactionId](#schemaissuingtransactionid)|false|none|The transaction's unique identifier.|
|reference_type|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|reference_type|original_mit|
|reference_type|original_recurring|

<h2 id="tocS_IssuingTransaction">IssuingTransaction</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransaction"></a>
<a id="schema_IssuingTransaction"></a>
<a id="tocSissuingtransaction"></a>
<a id="tocsissuingtransaction"></a>

```json
{
  "id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
  "created_on": "2019-08-24T14:15:22Z",
  "status": "authorized",
  "transaction_type": "purchase",
  "client": {
    "id": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
  },
  "entity": {
    "id": "ent_fa6psq242dcd6fdn5gifcq1491"
  },
  "card": {
    "id": "crd_fa6psq242dcd6fdn5gifcq1491",
    "network": "mastercard"
  },
  "digital_card": {
    "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
    "wallet_type": "googlepay"
  },
  "cardholder": {
    "id": "crh_d3ozhf43pcq2xbldn2g45qnb44"
  },
  "amounts": {
    "total_held": {
      "amount": 100,
      "currency": "USD"
    },
    "total_authorized": {
      "amount": 100,
      "currency": "USD"
    },
    "total_reversed": {
      "amount": 100,
      "currency": "USD"
    },
    "total_cleared": {
      "amount": 100,
      "currency": "USD"
    },
    "total_refunded": {
      "amount": 100,
      "currency": "USD"
    }
  },
  "merchant": {
    "id": "(*)123456789",
    "name": "My Merchant",
    "city": "Paris",
    "state": "",
    "country_code": "FR",
    "category_code": "5331"
  },
  "reference_transaction": {
    "transaction_id": "trx_aayhhfwbdyxwcaeyhhfwbd4xga",
    "reference_type": "original_mit"
  },
  "messages": [
    {
      "id": "msg_fa6psq242dcd6fdn5gifcq1491",
      "initiator": "cardholder",
      "type": "authorization",
      "result": "declined",
      "is_relayed": true,
      "indicator": "incremental_preauthorization",
      "decline_reason": "expiry_date_invalid",
      "authorization_code": "03C0C0",
      "billing_amount": 100,
      "billing_currency": "USD",
      "transaction_amount": 100,
      "transaction_currency": "USD",
      "created_on": "2019-09-10T10:11:12Z"
    }
  ],
  "_links": {
    "self": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "card": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "cardholder": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    },
    "reference_transaction": {
      "href": "string",
      "actions": [
        "GET"
      ],
      "types": [
        "string"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingTransactionId](#schemaissuingtransactionid)|false|none|The transaction's unique Checkout.com identifier.|
|created_on|string(date-time)|false|none|The date/time the transaction was created.|
|status|string|false|none|The high-level status indicating the stage of the transaction lifecycle.|
|transaction_type|string|false|none|The high-level nature of the transaction.|
|client|[IssuingTransactionClient](#schemaissuingtransactionclient)|false|none|Information about Client to which this transaction belongs.|
|entity|[IssuingTransactionEntity](#schemaissuingtransactionentity)|false|none|Information about Entity to which this transaction belongs.|
|card|[IssuingTransactionCard](#schemaissuingtransactioncard)|false|none|Basic card information used in this transaction.|
|digital_card|[IssuingTransactionDigitalCard](#schemaissuingtransactiondigitalcard)|false|none|Basic digital card information used in this transaction.|
|cardholder|[IssuingTransactionCardholder](#schemaissuingtransactioncardholder)|false|none|Information about Cardholder to which this transaction belongs.|
|amounts|[IssuingTransactionAmounts](#schemaissuingtransactionamounts)|false|none|The list of aggregated amounts related to the current transaction.|
|merchant|[IssuingTransactionMerchant](#schemaissuingtransactionmerchant)|false|none|The merchant details received in the first applicable message.<br>For example, if a transaction starts at the Authorization stage, then it will be the merchant received in the first Authorization.|
|reference_transaction|[IssuingReferenceTransaction](#schemaissuingreferencetransaction)|false|none|The basic details of a referenced transaction when applicable.|
|messages|[[IssuingTransactionMessage](#schemaissuingtransactionmessage)]|false|none|A summarized list of messages associated to this transaction.<br>A message can be initiated by the cardholder, merchant, acquirer, or issuer.|
|_links|object|false|none|The links related to the transaction.|
|» self|[IssuingLink](#schemaissuinglink)|false|none|The URI of the current transaction.|
|» card|[IssuingLink](#schemaissuinglink)|false|none|The URI of the associated card.|
|» cardholder|[IssuingLink](#schemaissuinglink)|false|none|The URI of the associated cardholder.|
|» reference_transaction|[IssuingLink](#schemaissuinglink)|false|none|The URI of the reference transaction. <br>For example, the original authorization in case of a refund, the original authenticated MIT or the first authorization in a series of recurring transactions.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|authorized|
|status|declined|
|status|canceled|
|status|cleared|
|status|refunded|
|status|disputed|
|transaction_type|account_funding|
|transaction_type|account_transfer|
|transaction_type|atm_installment|
|transaction_type|balance_inquiry|
|transaction_type|bill_payment|
|transaction_type|cash_advance|
|transaction_type|cashback|
|transaction_type|credit_adjustment|
|transaction_type|debit_adjustment|
|transaction_type|original_credit|
|transaction_type|payment_account_inquiry|
|transaction_type|payment|
|transaction_type|pin_change|
|transaction_type|pin_unblock|
|transaction_type|purchase_account_inquiry|
|transaction_type|purchase|
|transaction_type|quasi_cash|
|transaction_type|remittance_funding|
|transaction_type|remittance_payment|
|transaction_type|unknown|
|transaction_type|withdrawal|
|transaction_type|refund|

<h2 id="tocS_IssuingTransactionAmount">IssuingTransactionAmount</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionamount"></a>
<a id="schema_IssuingTransactionAmount"></a>
<a id="tocSissuingtransactionamount"></a>
<a id="tocsissuingtransactionamount"></a>

```json
{
  "amount": 100,
  "currency": "USD"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|number|false|none|The amount is provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|currency|[IssuingCurrency](#schemaissuingcurrency)|false|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|

<h2 id="tocS_IssuingTransactionAmounts">IssuingTransactionAmounts</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionamounts"></a>
<a id="schema_IssuingTransactionAmounts"></a>
<a id="tocSissuingtransactionamounts"></a>
<a id="tocsissuingtransactionamounts"></a>

```json
{
  "total_held": {
    "amount": 100,
    "currency": "USD"
  },
  "total_authorized": {
    "amount": 100,
    "currency": "USD"
  },
  "total_reversed": {
    "amount": 100,
    "currency": "USD"
  },
  "total_cleared": {
    "amount": 100,
    "currency": "USD"
  },
  "total_refunded": {
    "amount": 100,
    "currency": "USD"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_held|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The amount held internally to cover the transaction, but not yet debited. <br>This value is equal to the Total Authorized - Total Reversed - Total Cleared.<br /><br>The amount is represented in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a> of the cardholder's billing currency.|
|total_authorized|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The total amount which has been authorized. <br>This sums the billing amounts from all approved authorizations associated to this transaction.<br /><br>The amount is represented in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a> of the cardholder's billing currency.|
|total_reversed|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The total amount which has been reversed by the merchant or by the issuer. <br>This sums the billing amounts from all approved reversals and issuer initiated reversals associated to this transaction.<br /><br>The amount is represented in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a> of the cardholder's billing currency.|
|total_cleared|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The total amount which has been cleared by the scheme.<br>This sums the billing amounts from all presentments associated to this transaction.<br /><br>The amount is represented in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a> of the cardholder's billing currency.|
|total_refunded|[IssuingTransactionAmount](#schemaissuingtransactionamount)|false|none|The total amount which has been refunded to the cardholder.<br>This sums the billing amounts from all presentments of type "refund" associated to this transaction.<br /><br>The amount is represented in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a> of the cardholder's billing currency.|

<h2 id="tocS_IssuingTransactionCard">IssuingTransactionCard</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactioncard"></a>
<a id="schema_IssuingTransactionCard"></a>
<a id="tocSissuingtransactioncard"></a>
<a id="tocsissuingtransactioncard"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "network": "mastercard"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|false|none|The card's unique identifier.|
|network|string|false|none|The card network.|

#### Enumerated Values

|Property|Value|
|---|---|
|network|mastercard|

<h2 id="tocS_IssuingTransactionCardholder">IssuingTransactionCardholder</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactioncardholder"></a>
<a id="schema_IssuingTransactionCardholder"></a>
<a id="tocSissuingtransactioncardholder"></a>
<a id="tocsissuingtransactioncardholder"></a>

```json
{
  "id": "crh_d3ozhf43pcq2xbldn2g45qnb44"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardholderId](#schemaissuingcardholderid)|false|none|The cardholder's unique identifier.|

<h2 id="tocS_IssuingTransactionClient">IssuingTransactionClient</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionclient"></a>
<a id="schema_IssuingTransactionClient"></a>
<a id="tocSissuingtransactionclient"></a>
<a id="tocsissuingtransactionclient"></a>

```json
{
  "id": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingClientId](#schemaissuingclientid)|false|none|The client's unique identifier.|

<h2 id="tocS_IssuingTransactionDigitalCard">IssuingTransactionDigitalCard</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactiondigitalcard"></a>
<a id="schema_IssuingTransactionDigitalCard"></a>
<a id="tocSissuingtransactiondigitalcard"></a>
<a id="tocsissuingtransactiondigitalcard"></a>

```json
{
  "id": "dcr_5ngxzsynm2me3oxf73esbhda6q",
  "wallet_type": "googlepay"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingDigitalCardId](#schemaissuingdigitalcardid)|false|none|The digital card's unique identifier.|
|wallet_type|string|false|none|The wallet type.|

#### Enumerated Values

|Property|Value|
|---|---|
|wallet_type|googlepay|
|wallet_type|applepay|
|wallet_type|remote_commerce_programs|

<h2 id="tocS_IssuingTransactionEntity">IssuingTransactionEntity</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionentity"></a>
<a id="schema_IssuingTransactionEntity"></a>
<a id="tocSissuingtransactionentity"></a>
<a id="tocsissuingtransactionentity"></a>

```json
{
  "id": "ent_fa6psq242dcd6fdn5gifcq1491"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingEntityId](#schemaissuingentityid)|false|none|The entity's unique identifier.|

<h2 id="tocS_IssuingTransactionMerchant">IssuingTransactionMerchant</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionmerchant"></a>
<a id="schema_IssuingTransactionMerchant"></a>
<a id="tocSissuingtransactionmerchant"></a>
<a id="tocsissuingtransactionmerchant"></a>

```json
{
  "id": "(*)123456789",
  "name": "My Merchant",
  "city": "Paris",
  "state": "",
  "country_code": "FR",
  "category_code": "5331"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The merchant's identifier. The identifier varies from one acquirer to another.|
|name|string|false|none|The merchant's name.|
|city|string|false|none|The city where the merchant is located.|
|state|string|false|none|The state in which the merchant is located (only for US-based merchants).|
|country_code|string|false|none|The country code where the merchant is located.|
|category_code|string|false|none|The merchant's category codes.<br>All category codes are documented <a href="https://www.checkout.com/docs/developer-resources/testing/codes/merchant-category-codes" target="blank">here</a>.|

<h2 id="tocS_IssuingTransactionMessage">IssuingTransactionMessage</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionmessage"></a>
<a id="schema_IssuingTransactionMessage"></a>
<a id="tocSissuingtransactionmessage"></a>
<a id="tocsissuingtransactionmessage"></a>

```json
{
  "id": "msg_fa6psq242dcd6fdn5gifcq1491",
  "initiator": "cardholder",
  "type": "authorization",
  "result": "declined",
  "is_relayed": true,
  "indicator": "incremental_preauthorization",
  "decline_reason": "expiry_date_invalid",
  "authorization_code": "03C0C0",
  "billing_amount": 100,
  "billing_currency": "USD",
  "transaction_amount": 100,
  "transaction_currency": "USD",
  "created_on": "2019-09-10T10:11:12Z"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingMessageId](#schemaissuingmessageid)|false|none|The message's unique Checkout.com identifier.|
|initiator|string|false|none|Specifies who initiated the message|
|type|string|false|none|The message type.|
|result|string|false|none|The outcome after processing this message.|
|is_relayed|boolean|false|none|Indicates if this message was relayed through the Auth Relay to the client.|
|indicator|string|false|none|Indicates the type of the authorization, reversal, or presentment.<br/><br>For authorization, it can be incremental_preauthorization, deferred_authorization, preauthorization, normal_authorization, final_authorization, or unknown.<br/><br>For reversals, it can be partial_reversal or full_reversal.<br/><br>For presentments, it can be partial_presentment or final_presentment.<br/><br>For other message type, it may be null.|
|decline_reason|string|false|none|The reason explaining why the message was declined. <br>Refer to our documentation for a list of possible <a href="https://www.checkout.com/docs/developer-resources/testing/codes/issuing-decline-reasons" target="blank">decline reasons</a>.<br/><br>If the message was approved, this will return `Null`.|
|authorization_code|string|false|none|Your issuer authorization code for when the transaction was approved.|
|billing_amount|integer(int64)|false|none|The transaction billing amount.<br/><br>The amount is provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|billing_currency|[IssuingCurrency](#schemaissuingcurrency)|false|none|The issuing currency, as a three-letter <a href="https://docs.checkout.com/docs/currency-codes" target="blank">ISO currency code</a>.|
|transaction_amount|integer(int64)|false|none|The amount of the message in the currency the card was used in, before any currency conversion.<br/><br>The amount is provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.<br/><br>This is only returned when the card scheme provided the transaction amount and currency for this message.<br/><br>This field is only available for messages created on or after October 1, 2026. Messages created before that date have no value.|
|transaction_currency|[IssuingCurrency](#schemaissuingcurrency)|false|none|The currency the card was used in, before any currency conversion.<br/><br>This is only returned when the card scheme provided the transaction amount and currency for this message.<br/><br>This field is only available for messages created on or after October 1, 2026. Messages created before that date have no value.|
|created_on|string(date-time)|false|none|The message's creation date/time (UTC).|

#### Enumerated Values

|Property|Value|
|---|---|
|initiator|cardholder|
|initiator|merchant|
|initiator|acquirer|
|initiator|card_network|
|initiator|issuer|
|type|authorization|
|type|reversal|
|type|authorization_advice|
|type|reversal_advice|
|type|presentment|
|type|authorization_refund|
|type|presentment_refund|
|type|presentment_reversed|
|type|presentment_reversed_refund|
|result|approved|
|result|declined|
|result|processed|
|indicator|incremental_preauthorization|
|indicator|deferred_authorization|
|indicator|preauthorization|
|indicator|normal_authorization|
|indicator|final_authorization|
|indicator|partial_reversal|
|indicator|full_reversal|
|indicator|partial_presentment|
|indicator|final_presentment|
|indicator|unknown|

<h2 id="tocS_SimulateAuthorizationRequest">SimulateAuthorizationRequest</h2>
<!-- backwards compatibility -->
<a id="schemasimulateauthorizationrequest"></a>
<a id="schema_SimulateAuthorizationRequest"></a>
<a id="tocSsimulateauthorizationrequest"></a>
<a id="tocssimulateauthorizationrequest"></a>

```json
{
  "card": {
    "id": "crd_fa6psq242dcd6fdn5gifcq1491",
    "expiry_month": 5,
    "expiry_year": 2025
  },
  "transaction": {
    "type": "purchase",
    "amount": 6540,
    "currency": "GBP",
    "merchant": {
      "category_code": "7399"
    },
    "authorization_type": "authorization"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|card|[IssuingSimulateCard](#schemaissuingsimulatecard)|false|none|The card to simulate an authorization with.|
|transaction|[IssuingSimulateTransaction](#schemaissuingsimulatetransaction)|false|none|The transaction to simulate with the specified card. For example, a purchase.|

<h2 id="tocS_SimulateAuthorizationResponse">SimulateAuthorizationResponse</h2>
<!-- backwards compatibility -->
<a id="schemasimulateauthorizationresponse"></a>
<a id="schema_SimulateAuthorizationResponse"></a>
<a id="tocSsimulateauthorizationresponse"></a>
<a id="tocssimulateauthorizationresponse"></a>

```json
{
  "id": "trx_aaqc4uaaybigcaaqc4uaayfiga",
  "status": "Authorized"
}

```

Authorization Response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The transaction's unique identifier. <br><br>This same ID is carried throughout all authorization, reversal, and clearing messages related to the given transaction.|
|status|string|true|none|The transaction's status.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Authorized|
|status|Declined|

<h2 id="tocS_SimulateIncrementalAuthorizationRequest">SimulateIncrementalAuthorizationRequest</h2>
<!-- backwards compatibility -->
<a id="schemasimulateincrementalauthorizationrequest"></a>
<a id="schema_SimulateIncrementalAuthorizationRequest"></a>
<a id="tocSsimulateincrementalauthorizationrequest"></a>
<a id="tocssimulateincrementalauthorizationrequest"></a>

```json
{
  "amount": 3500
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|false|none|You must provide the amount in the transaction currency's <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>.|

<h2 id="tocS_SimulateIncrementalAuthorizationResponse">SimulateIncrementalAuthorizationResponse</h2>
<!-- backwards compatibility -->
<a id="schemasimulateincrementalauthorizationresponse"></a>
<a id="schema_SimulateIncrementalAuthorizationResponse"></a>
<a id="tocSsimulateincrementalauthorizationresponse"></a>
<a id="tocssimulateincrementalauthorizationresponse"></a>

```json
{
  "status": "Authorized"
}

```

Authorization Response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|true|none|The transaction's status.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Authorized|
|status|Declined|

<h2 id="tocS_PresentmentRequest">PresentmentRequest</h2>
<!-- backwards compatibility -->
<a id="schemapresentmentrequest"></a>
<a id="schema_PresentmentRequest"></a>
<a id="tocSpresentmentrequest"></a>
<a id="tocspresentmentrequest"></a>

```json
{
  "amount": 2500
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|false|none|The amount to clear. If not specified, the full authorized amount will be cleared.<br><br>You must provide the amount in the transaction currency's <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>.|

<h2 id="tocS_IssuingAuthorizationTypes">IssuingAuthorizationTypes</h2>
<!-- backwards compatibility -->
<a id="schemaissuingauthorizationtypes"></a>
<a id="schema_IssuingAuthorizationTypes"></a>
<a id="tocSissuingauthorizationtypes"></a>
<a id="tocsissuingauthorizationtypes"></a>

```json
"authorization"

```

Use `authorization` for a known final amount or `pre_authorization` for an estimated amount.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Use `authorization` for a known final amount or `pre_authorization` for an estimated amount.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|authorization|
|*anonymous*|pre_authorization|

<h2 id="tocS_IssuingMerchant">IssuingMerchant</h2>
<!-- backwards compatibility -->
<a id="schemaissuingmerchant"></a>
<a id="schema_IssuingMerchant"></a>
<a id="tocSissuingmerchant"></a>
<a id="tocsissuingmerchant"></a>

```json
{
  "category_code": "7399"
}

```

The merchant related data to use for the transaction.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|category_code|string|false|none|The <a href="https://www.checkout.com/docs/resources/codes/merchant-category-codes" target="blank">merchant category code (MCC)</a>, which determines the types of businesses the card can process the transaction from.|

<h2 id="tocS_IssuingSimulateCard">IssuingSimulateCard</h2>
<!-- backwards compatibility -->
<a id="schemaissuingsimulatecard"></a>
<a id="schema_IssuingSimulateCard"></a>
<a id="tocSissuingsimulatecard"></a>
<a id="tocsissuingsimulatecard"></a>

```json
{
  "id": "crd_fa6psq242dcd6fdn5gifcq1491",
  "expiry_month": 5,
  "expiry_year": 2025
}

```

The card to simulate an authorization with.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[IssuingCardId](#schemaissuingcardid)|true|none|The card's unique identifier.|
|expiry_month|[ExpiryMonth](#schemaexpirymonth)|false|none|The card's expiration month.|
|expiry_year|[ExpiryYear](#schemaexpiryyear)|false|none|The card's expiration year.|

<h2 id="tocS_IssuingSimulateTransaction">IssuingSimulateTransaction</h2>
<!-- backwards compatibility -->
<a id="schemaissuingsimulatetransaction"></a>
<a id="schema_IssuingSimulateTransaction"></a>
<a id="tocSissuingsimulatetransaction"></a>
<a id="tocsissuingsimulatetransaction"></a>

```json
{
  "type": "purchase",
  "amount": 6540,
  "currency": "GBP",
  "merchant": {
    "category_code": "7399"
  },
  "authorization_type": "authorization"
}

```

The transaction to simulate with the specified card. For example, a purchase.

### Properties

*None*

<h2 id="tocS_IssuingTransactionId">IssuingTransactionId</h2>
<!-- backwards compatibility -->
<a id="schemaissuingtransactionid"></a>
<a id="schema_IssuingTransactionId"></a>
<a id="tocSissuingtransactionid"></a>
<a id="tocsissuingtransactionid"></a>

```json
"trx_aayhhfwbdyxwcaeyhhfwbd4xga"

```

The transaction's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The transaction's unique identifier.|

<h2 id="tocS_Purchase">Purchase</h2>
<!-- backwards compatibility -->
<a id="schemapurchase"></a>
<a id="schema_Purchase"></a>
<a id="tocSpurchase"></a>
<a id="tocspurchase"></a>

```json
{
  "type": "purchase",
  "amount": 6540,
  "currency": "GBP",
  "merchant": {
    "category_code": "7399"
  },
  "authorization_type": "authorization"
}

```

purchase

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The transaction type.|
|amount|integer|false|none|The payment amount, in <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>.<br><br>To perform a card verification, set `amount` to `0`, or omit the field entirely.|
|currency|string|false|none|The currency to use for the transaction, as a three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>. If this currency differs from the cardholder's billing currency, the billing amount will be adjusted according to the applicable conversion rate. If no currency is provided, the transaction will default to the cardholder's billing currency.|
|merchant|[IssuingMerchant](#schemaissuingmerchant)|false|none|The merchant related data to use for the transaction.|
|authorization_type|[IssuingAuthorizationTypes](#schemaissuingauthorizationtypes)|false|none|Use `authorization` for a known final amount or `pre_authorization` for an estimated amount.|

<h2 id="tocS_SimulateRefundRequest">SimulateRefundRequest</h2>
<!-- backwards compatibility -->
<a id="schemasimulaterefundrequest"></a>
<a id="schema_SimulateRefundRequest"></a>
<a id="tocSsimulaterefundrequest"></a>
<a id="tocssimulaterefundrequest"></a>

```json
{
  "amount": 2500
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|false|none|The amount to refund. If not specified, the full cleared amount will be refunded.<br><br>You must provide the amount in the transaction currency's <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a> .|

<h2 id="tocS_ReversalRequest">ReversalRequest</h2>
<!-- backwards compatibility -->
<a id="schemareversalrequest"></a>
<a id="schema_ReversalRequest"></a>
<a id="tocSreversalrequest"></a>
<a id="tocsreversalrequest"></a>

```json
{
  "amount": 2500
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|false|none|The amount to reverse. If unspecified, the full transaction amount will be reversed.<br><br>You must provide the amount in the transaction currency's <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>.|

<h2 id="tocS_ReversalResponse">ReversalResponse</h2>
<!-- backwards compatibility -->
<a id="schemareversalresponse"></a>
<a id="schema_ReversalResponse"></a>
<a id="tocSreversalresponse"></a>
<a id="tocsreversalresponse"></a>

```json
{
  "status": "Reversed"
}

```

Reversal Response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|true|none|The status of the transaction (either Reversed or Declined).|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Reversed|
|status|Declined|

<h2 id="tocS_Link">Link</h2>
<!-- backwards compatibility -->
<a id="schemalink"></a>
<a id="schema_Link"></a>
<a id="tocSlink"></a>
<a id="tocslink"></a>

```json
{
  "href": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string|true|none|The link URL|

<h2 id="tocS_RedirectLink">RedirectLink</h2>
<!-- backwards compatibility -->
<a id="schemaredirectlink"></a>
<a id="schema_RedirectLink"></a>
<a id="tocSredirectlink"></a>
<a id="tocsredirectlink"></a>

```json
{
  "href": "string",
  "mobile": {
    "android": {
      "href": "string"
    },
    "ios": {
      "href": null
    }
  },
  "qr_code": {
    "image": "string",
    "text": "string"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string|false|none|The redirect link URL|
|mobile|object|false|none|The mobile links for the redirect|
|» android|object|false|none|none|
|»» href|string|false|none|The Android link|
|» ios|object|false|none|none|
|»» href|any|false|none|The iOS link|
|qr_code|object|false|none|The QR code for the redirect|
|» image|string|false|none|The QR code image URL|
|» text|string|false|none|The encoded text for the QR code|

<h2 id="tocS_CardMetadataRequest">CardMetadataRequest</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadatarequest"></a>
<a id="schema_CardMetadataRequest"></a>
<a id="tocScardmetadatarequest"></a>
<a id="tocscardmetadatarequest"></a>

```json
{
  "source": {
    "type": "card",
    "number": "4543474002249996"
  },
  "format": "basic",
  "reference": "ORD-5023-4E89"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[CardMetadataRequestSource](#schemacardmetadatarequestsource)|false|none|The source object|
|format|string|false|none|The format to provide the output in.<br><br>A `basic` response will only include standard metadata, while a `card_payouts` formatted response will also include fields specific to card payouts.|
|reference|string|false|none|A reference you can later use to identify this Payment Context. For example, an order number.|

#### Enumerated Values

|Property|Value|
|---|---|
|format|basic|
|format|card_payouts|

<h2 id="tocS_CardMetadataRequestSource">CardMetadataRequestSource</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadatarequestsource"></a>
<a id="schema_CardMetadataRequestSource"></a>
<a id="tocScardmetadatarequestsource"></a>
<a id="tocscardmetadatarequestsource"></a>

```json
{
  "type": "card",
  "number": "4543474002249996"
}

```

The source object

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CardMetadataRequestSourceCard](#schemacardmetadatarequestsourcecard)|false|none|An existing payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CardMetadataRequestSourceBin](#schemacardmetadatarequestsourcebin)|false|none|An existing payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CardMetadataRequestSourceToken](#schemacardmetadatarequestsourcetoken)|false|none|An existing payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CardMetadataRequestSourceInstrument](#schemacardmetadatarequestsourceinstrument)|false|none|An existing payment source|

<h2 id="tocS_CardMetadataRequestSourceBin">CardMetadataRequestSourceBin</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadatarequestsourcebin"></a>
<a id="schema_CardMetadataRequestSourceBin"></a>
<a id="tocScardmetadatarequestsourcebin"></a>
<a id="tocscardmetadatarequestsourcebin"></a>

```json
{
  "type": "bin",
  "bin": "454347"
}

```

bin

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type|
|bin|string|true|none|The issuer's Bank Identification Number (BIN)|

<h2 id="tocS_CardMetadataRequestSourceCard">CardMetadataRequestSourceCard</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadatarequestsourcecard"></a>
<a id="schema_CardMetadataRequestSourceCard"></a>
<a id="tocScardmetadatarequestsourcecard"></a>
<a id="tocscardmetadatarequestsourcecard"></a>

```json
{
  "type": "card",
  "number": "4543474002249996"
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type|
|number|string|true|none|The Primary Account Number (PAN)|

<h2 id="tocS_CardMetadataRequestSourceInstrument">CardMetadataRequestSourceInstrument</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadatarequestsourceinstrument"></a>
<a id="schema_CardMetadataRequestSourceInstrument"></a>
<a id="tocScardmetadatarequestsourceinstrument"></a>
<a id="tocscardmetadatarequestsourceinstrument"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type|
|id|string|true|none|The unique ID for the payment instrument that was created using the card's details|

<h2 id="tocS_CardMetadataRequestSourceToken">CardMetadataRequestSourceToken</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadatarequestsourcetoken"></a>
<a id="schema_CardMetadataRequestSourceToken"></a>
<a id="tocScardmetadatarequestsourcetoken"></a>
<a id="tocscardmetadatarequestsourcetoken"></a>

```json
{
  "type": "token",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q"
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type|
|token|string|true|none|The Checkout.com unique token that was generated when the card's details were tokenized|

<h2 id="tocS_CardMetadataResponse">CardMetadataResponse</h2>
<!-- backwards compatibility -->
<a id="schemacardmetadataresponse"></a>
<a id="schema_CardMetadataResponse"></a>
<a id="tocScardmetadataresponse"></a>
<a id="tocscardmetadataresponse"></a>

```json
{
  "bin": "45434720",
  "scheme": "visa",
  "scheme_local": "cartes_bancaires",
  "local_schemes": [
    "cartes_bancaires",
    "upi"
  ],
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "currency": "MUR",
  "issuer": "STATE BANK OF MAURITIUS",
  "issuer_country": "MU",
  "issuer_country_name": "Mauritius",
  "is_combo_card": true,
  "product_id": "CLASSIC",
  "product_type": "F",
  "subproduct_id": "VA",
  "regulated_indicator": true,
  "regulated_type": "base_regulated",
  "is_reloadable_prepaid": true,
  "anonymous_prepaid_description": "Anonymous prepaid program and not AMLD5 compliant",
  "card_payouts": {
    "domestic_non_money_transfer": "not_supported",
    "cross_border_non_money_transfer": "standard",
    "domestic_gambling": "fast_funds",
    "cross_border_gambling": "unknown",
    "domestic_money_transfer": "not_supported",
    "cross_border_money_transfer": "not_supported"
  },
  "scheme_metadata": {
    "accel": [
      {
        "network_id": "aam",
        "network_description": "Accel Money Transfer Advantage",
        "bill_pay_indicator": true,
        "ecommerce_indicator": true,
        "interchange_fee_indicator": "00",
        "money_transfer_indicator": true,
        "token_indicator": false
      }
    ],
    "pulse": [
      {
        "network_id": "aam",
        "network_description": "Accel Money Transfer Advantage",
        "bill_pay_indicator": true,
        "ecommerce_indicator": true,
        "interchange_fee_indicator": "00",
        "money_transfer_indicator": true,
        "token_indicator": false
      }
    ],
    "nyce": [
      {
        "network_id": "aam",
        "network_description": "Accel Money Transfer Advantage",
        "bill_pay_indicator": true,
        "ecommerce_indicator": true,
        "interchange_fee_indicator": "00",
        "money_transfer_indicator": true,
        "token_indicator": false
      }
    ],
    "shazam": [
      {
        "network_id": "aam",
        "network_description": "Accel Money Transfer Advantage",
        "bill_pay_indicator": true,
        "ecommerce_indicator": true,
        "interchange_fee_indicator": "00",
        "money_transfer_indicator": true,
        "token_indicator": false
      }
    ],
    "star": [
      {
        "network_id": "aam",
        "network_description": "Accel Money Transfer Advantage",
        "bill_pay_indicator": true,
        "ecommerce_indicator": true,
        "interchange_fee_indicator": "00",
        "money_transfer_indicator": true,
        "token_indicator": false
      }
    ]
  },
  "account_funding_transaction": {
    "aft_indicator": {
      "pull_funds": {
        "cross_border": true,
        "domestic": true
      }
    }
  }
}

```

Card Metadata

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|bin|string|true|none|The issuer's Bank Identification Number (BIN). Supports 6, 8, or 11 digit BINs.|
|scheme|string|true|none|The global card scheme. For example, `"american_express"`, `"cartes_bancaires"`, `"diners_club_international"`, `"discover"`, `"eftpos"`, `"jcb"`, `"mastercard"`, or `"visa"`.|
|scheme_local|string|false|none|Replaced by `local_schemes`.<br>The local card scheme, if the card is co-branded.|
|local_schemes|[string]|false|none|The local card scheme or schemes, if the card is co-branded.|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|currency|string|false|none|The card billing currency, as a three-letter ISO-4217 <a href="https://www.checkout.com/docs/developer-resources/testing/codes/currency-codes" target="blank">currency code</a>.|
|issuer|string|false|none|The card issuer|
|issuer_country|string|false|none|The card issuer's country, as an ISO-2 code|
|issuer_country_name|string|false|none|The card issuer's country|
|is_combo_card|boolean|false|none|Indicates whether the card is a combo credit and debit card. Applicable to Visa and Mastercard.|
|product_id|string|false|none|The card issuer or scheme's product identifier|
|product_type|string|false|none|The card issuer or scheme's product type|
|subproduct_id|string|false|none|The card issuer or scheme's sub-product identifier|
|regulated_indicator|boolean|false|none|Specifies whether the card is assigned to an interchange regulated BIN range|
|regulated_type|string|false|none|The type of the interchange regulated card BIN range|
|is_reloadable_prepaid|boolean|false|none|Indicates whether the prepaid bank identification number (BIN) is reloadable.|
|anonymous_prepaid_description|string|false|none|The description of the prepaid BIN, specifying if it's an anonymous prepaid card.|
|card_payouts|object|false|none|A card payouts block exists in the response if the format in the request is  "card_payouts".|
|» domestic_non_money_transfer|string|false|none|Describes whether the card is eligible for domestic non-money transfer transactions|
|» cross_border_non_money_transfer|string|false|none|Describes whether the card is eligible for cross-border non-money transfer transactions|
|» domestic_gambling|string|false|none|Describes whether the card is eligible for domestic gambling transactions|
|» cross_border_gambling|string|false|none|Describes whether the card is eligible for cross-border gambling transactions|
|» domestic_money_transfer|string|false|none|Describes whether the card is eligible for domestic money transfer transactions|
|» cross_border_money_transfer|string|false|none|Describes whether the card is eligible for cross-border money transfer transactions|
|scheme_metadata|object|false|none|Provides additional information about the scheme or local scheme's capabilities. It is sent if the card is issued in the US and can be used in a PINless debit network. <br/><br>`scheme_metadata` is returned when you provide: <br>  - The full card number or <br>  -  11 digit bin|
|» accel|[[PinlessDebitSchemeMetadata](#schemapinlessdebitschememetadata)]|false|none|none|
|» pulse|[[PinlessDebitSchemeMetadata](#schemapinlessdebitschememetadata)]|false|none|none|
|» nyce|[[PinlessDebitSchemeMetadata](#schemapinlessdebitschememetadata)]|false|none|none|
|» shazam|[[PinlessDebitSchemeMetadata](#schemapinlessdebitschememetadata)]|false|none|none|
|» star|[[PinlessDebitSchemeMetadata](#schemapinlessdebitschememetadata)]|false|none|none|
|account_funding_transaction|[AccountFundingTransaction](#schemaaccountfundingtransaction)|false|none|Account Funding Transaction|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme_local|cartes_bancaires|
|scheme_local|mada|
|scheme_local|omannet|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_type|NETWORK TOKEN|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|regulated_type|base_regulated|
|regulated_type|fraud_protected_regulated|
|anonymous_prepaid_description|Anonymous prepaid program and not AMLD5 compliant|
|anonymous_prepaid_description|Anonymous prepaid program and AMLD5 compliant|
|anonymous_prepaid_description|Not prepaid or non-anonymous prepaid program/default|
|domestic_non_money_transfer|not_supported|
|domestic_non_money_transfer|standard|
|domestic_non_money_transfer|fast_funds|
|domestic_non_money_transfer|unknown|
|cross_border_non_money_transfer|not_supported|
|cross_border_non_money_transfer|standard|
|cross_border_non_money_transfer|fast_funds|
|cross_border_non_money_transfer|unknown|
|domestic_gambling|not_supported|
|domestic_gambling|standard|
|domestic_gambling|fast_funds|
|domestic_gambling|unknown|
|cross_border_gambling|not_supported|
|cross_border_gambling|standard|
|cross_border_gambling|fast_funds|
|cross_border_gambling|unknown|
|domestic_money_transfer|not_supported|
|domestic_money_transfer|standard|
|domestic_money_transfer|fast_funds|
|domestic_money_transfer|unknown|
|cross_border_money_transfer|not_supported|
|cross_border_money_transfer|standard|
|cross_border_money_transfer|fast_funds|
|cross_border_money_transfer|unknown|

<h2 id="tocS_AccountFundingTransaction">AccountFundingTransaction</h2>
<!-- backwards compatibility -->
<a id="schemaaccountfundingtransaction"></a>
<a id="schema_AccountFundingTransaction"></a>
<a id="tocSaccountfundingtransaction"></a>
<a id="tocsaccountfundingtransaction"></a>

```json
{
  "aft_indicator": {
    "pull_funds": {
      "cross_border": true,
      "domestic": true
    }
  }
}

```

Account Funding Transaction

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|aft_indicator|object|false|none|Describes whether the card is eligible for Account Funding Transactions|
|» pull_funds|[PullFunds](#schemapullfunds)|false|none|Describes whether the card is eligible to take funds from different accounts to fund other non-merchant accounts|

<h2 id="tocS_PinlessDebitSchemeMetadata">PinlessDebitSchemeMetadata</h2>
<!-- backwards compatibility -->
<a id="schemapinlessdebitschememetadata"></a>
<a id="schema_PinlessDebitSchemeMetadata"></a>
<a id="tocSpinlessdebitschememetadata"></a>
<a id="tocspinlessdebitschememetadata"></a>

```json
{
  "network_id": "aam",
  "network_description": "Accel Money Transfer Advantage",
  "bill_pay_indicator": true,
  "ecommerce_indicator": true,
  "interchange_fee_indicator": "00",
  "money_transfer_indicator": true,
  "token_indicator": false
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|network_id|string|false|none|The PINless debit network identifier|
|network_description|string|false|none|The PINless debit network name|
|bill_pay_indicator|boolean|false|none|Describes whether the card is eligible for bill payment transactions|
|ecommerce_indicator|boolean|false|none|Describes whether the card is eligible for e-commerce transactions|
|interchange_fee_indicator|string|false|none|The type of interchange fee used for transactions|
|money_transfer_indicator|boolean|false|none|Describes whether the card is eligible for money transfer transactions|
|token_indicator|boolean|false|none|True indicates that the card PAN is a DPAN, false indicates that it is a FPAN|

<h2 id="tocS_PullFunds">PullFunds</h2>
<!-- backwards compatibility -->
<a id="schemapullfunds"></a>
<a id="schema_PullFunds"></a>
<a id="tocSpullfunds"></a>
<a id="tocspullfunds"></a>

```json
{
  "cross_border": true,
  "domestic": true
}

```

Describes whether the card is eligible to take funds from different accounts to fund other non-merchant accounts

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|cross_border|boolean|false|none|Describes whether the card is eligible for Account Funding Transactions between accounts in different countries|
|domestic|boolean|false|none|Describes whether the card is eligible for Account Funding Transactions between accounts in the same country|

<h2 id="tocS_NetworkTokensCard">NetworkTokensCard</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokenscard"></a>
<a id="schema_NetworkTokensCard"></a>
<a id="tocSnetworktokenscard"></a>
<a id="tocsnetworktokenscard"></a>

```json
{
  "last4": "6378",
  "expiry_month": "5",
  "expiry_year": "2025"
}

```

The card details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|last4|string|true|none|The last four digits of the card number.|
|expiry_month|string|true|none|The card's expiration month.|
|expiry_year|string|true|none|The card's expiration year.|

<h2 id="tocS_NetworkTokensCryptogramRequest">NetworkTokensCryptogramRequest</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokenscryptogramrequest"></a>
<a id="schema_NetworkTokensCryptogramRequest"></a>
<a id="tocSnetworktokenscryptogramrequest"></a>
<a id="tocsnetworktokenscryptogramrequest"></a>

```json
{
  "transaction_type": "ecom"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|transaction_type|string|true|none|Transaction type the cryptogram is requested for.|

#### Enumerated Values

|Property|Value|
|---|---|
|transaction_type|ecom|
|transaction_type|recurring|
|transaction_type|pos|
|transaction_type|aft|

<h2 id="tocS_NetworkTokensCryptogramResponse">NetworkTokensCryptogramResponse</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokenscryptogramresponse"></a>
<a id="schema_NetworkTokensCryptogramResponse"></a>
<a id="tocSnetworktokenscryptogramresponse"></a>
<a id="tocsnetworktokenscryptogramresponse"></a>

```json
{
  "cryptogram": "AhJ3hnYAoAbVz5zg1e17MAACAAA=",
  "eci": "7",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
    },
    "network-token": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|cryptogram|string|true|none|The cryptogram from the network token. Will only be refreshed for active network tokens and returned when the network token isn't declined or pending|
|eci|string|false|none|Electronic Commerce Indicator (ECI) from the issuer.|
|_links|object|false|none|none|
|» self|[Link](#schemalink)|false|none|Link to request a new cryptogram|
|» network-token|[Link](#schemalink)|false|none|Link to access network token|

<h2 id="tocS_NetworkTokensRequest">NetworkTokensRequest</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensrequest"></a>
<a id="schema_NetworkTokensRequest"></a>
<a id="tocSnetworktokensrequest"></a>
<a id="tocsnetworktokensrequest"></a>

```json
{
  "source": {
    "type": "id",
    "id": "src_wmlfc3zyhqzehihu7giusaaawu"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[NetworkTokensRequestSource](#schemanetworktokensrequestsource)|true|none|The source object|

<h2 id="tocS_NetworkTokensRequestDelete">NetworkTokensRequestDelete</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensrequestdelete"></a>
<a id="schema_NetworkTokensRequestDelete"></a>
<a id="tocSnetworktokensrequestdelete"></a>
<a id="tocsnetworktokensrequestdelete"></a>

```json
{
  "initiated_by": "token_requestor",
  "reason": "other"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|initiated_by|string|true|none|Who initiated/requested the deletion of the token.|
|reason|string|true|none|The reason for deleting the token.|

#### Enumerated Values

|Property|Value|
|---|---|
|initiated_by|cardholder|
|initiated_by|token_requestor|
|reason|fraud|
|reason|other|

<h2 id="tocS_NetworkTokensRequestSource">NetworkTokensRequestSource</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensrequestsource"></a>
<a id="schema_NetworkTokensRequestSource"></a>
<a id="tocSnetworktokensrequestsource"></a>
<a id="tocsnetworktokensrequestsource"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

The source object

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[NetworkTokensRequestSourceInstrument](#schemanetworktokensrequestsourceinstrument)|false|none|An existing payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[NetworkTokensRequestSourceCard](#schemanetworktokensrequestsourcecard)|false|none|Card details|

<h2 id="tocS_NetworkTokensRequestSourceCard">NetworkTokensRequestSourceCard</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensrequestsourcecard"></a>
<a id="schema_NetworkTokensRequestSourceCard"></a>
<a id="tocSnetworktokensrequestsourcecard"></a>
<a id="tocsnetworktokensrequestsourcecard"></a>

```json
{
  "type": "card",
  "number": "5436031030606378",
  "cvv": "123",
  "expiry_month": "5",
  "expiry_year": "2025"
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type|
|number|string|true|none|The card number.|
|cvv|string|false|none|The CVV number for the card|
|expiry_month|string|true|none|The expiry month of the card.|
|expiry_year|string|true|none|The four-digit expiry year of the card.|

<h2 id="tocS_NetworkTokensRequestSourceInstrument">NetworkTokensRequestSourceInstrument</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensrequestsourceinstrument"></a>
<a id="schema_NetworkTokensRequestSourceInstrument"></a>
<a id="tocSnetworktokensrequestsourceinstrument"></a>
<a id="tocsnetworktokensrequestsourceinstrument"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type|
|id|string|true|none|The card instrument|

<h2 id="tocS_NetworkTokensResponse">NetworkTokensResponse</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensresponse"></a>
<a id="schema_NetworkTokensResponse"></a>
<a id="tocSnetworktokensresponse"></a>
<a id="tocsnetworktokensresponse"></a>

```json
{
  "card": {
    "last4": "6378",
    "expiry_month": "5",
    "expiry_year": "2025"
  },
  "network_token": {
    "id": "nt_xgu3isllqfyu7ktpk5z2yxbwna",
    "state": "active",
    "number": "5436424242424242",
    "expiry_month": "5",
    "expiry_year": "2025",
    "type": "vts",
    "payment_account_reference": "5001a9f027e5629d11e3949a0800a",
    "created_on": "2020-02-11T15:57:32.435+00:00",
    "modified_on": "2020-02-11T15:57:32.435+00:00"
  },
  "token_requestor_id": "1234567890",
  "token_scheme_id": "scheme_visa_001",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
    },
    "cryptogram": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
    },
    "card-art": {
      "href": "https://card-art.checkout.com/00340aa7bd3de35cb1048369450d8df4"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|card|[NetworkTokensCard](#schemanetworktokenscard)|true|none|The card details.|
|network_token|object|true|none|Network token details|
|» id|string|true|none|Unique token ID assigned by Checkout.com for each token|
|» state|string|true|none|Token status|
|» number|string|true|none|The network token number.|
|» expiry_month|string|true|none|The network token's expiration month.|
|» expiry_year|string|true|none|The network token's expiration year.|
|» type|string|true|none|The type of token|
|» payment_account_reference|string|false|none|Unique Payment account reference value assigned to payment account. All affiliated payment tokens, as well as the underlying PAN, have the same PAR.|
|» created_on|string(date-time)|true|none|When the network token was created|
|» modified_on|string(date-time)|true|none|When the network token was modified|
|token_requestor_id|string|false|none|Token requestor ID|
|token_scheme_id|string|false|none|The scheme-specific identifier for the network token. <br><br>For Visa, this is equivalent to the `vProvisionedTokenID`. For Mastercard, this is equivalent to the `tokenUniqueReference`.|
|_links|[NetworkTokensResponseLinks](#schemanetworktokensresponselinks)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|state|active|
|state|suspended|
|state|inactive|
|type|vts|
|type|mdes|

<h2 id="tocS_NetworkTokensResponseLinks">NetworkTokensResponseLinks</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensresponselinks"></a>
<a id="schema_NetworkTokensResponseLinks"></a>
<a id="tocSnetworktokensresponselinks"></a>
<a id="tocsnetworktokensresponselinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
  },
  "cryptogram": {
    "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
  },
  "card-art": {
    "href": "https://card-art.checkout.com/00340aa7bd3de35cb1048369450d8df4"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|false|none|Link to access network token|
|cryptogram|[Link](#schemalink)|false|none|Link to request cryptogram|
|card-art|[Link](#schemalink)|false|none|Link to request card art image.<br><br>The URL returned contains an image of a non-PCI, digital representation of the cardholder's card.|

<h2 id="tocS_NetworkTokensRetrieveResponse">NetworkTokensRetrieveResponse</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensretrieveresponse"></a>
<a id="schema_NetworkTokensRetrieveResponse"></a>
<a id="tocSnetworktokensretrieveresponse"></a>
<a id="tocsnetworktokensretrieveresponse"></a>

```json
{
  "card": {
    "last4": "6378",
    "expiry_month": "5",
    "expiry_year": "2025"
  },
  "network_token": {
    "id": "nt_xgu3isllqfyu7ktpk5z2yxbwna",
    "state": "active",
    "number": "5436424242424242",
    "expiry_month": "5",
    "expiry_year": "2025",
    "type": "vts",
    "payment_account_reference": "5001a9f027e5629d11e3949a0800a",
    "created_on": "2020-02-11T15:57:32.435+00:00",
    "modified_on": "2020-02-11T15:57:32.435+00:00"
  },
  "token_requestor_id": "1234567890",
  "token_scheme_id": "scheme_visa_001",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
    },
    "cryptogram": {
      "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
    },
    "card-art": {
      "href": "https://card-art.checkout.com/00340aa7bd3de35cb1048369450d8df4"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|card|[NetworkTokensCard](#schemanetworktokenscard)|true|none|The card details.|
|network_token|object|true|none|Network token details.|
|» id|string|true|none|The unique identifier for the network token.|
|» state|string|true|none|The token's status.|
|» number|string|false|none|The network token number.<br>This field is only returned when the network token `status` is one of the following:<br><br>- `active`<br>- `suspended`<br>- `inactive`|
|» expiry_month|string|false|none|The network token's expiration month.<br><br>This field is only returned when the network token `status` is one of the following:<br><br>- `active`<br>- `suspended`<br>- `inactive`|
|» expiry_year|string|false|none|The network token's expiration year.<br><br>This field is only returned when the network token `status` is one of the following:<br><br>- `active`<br>- `suspended`<br>- `inactive`|
|» type|string|true|none|The network token type.|
|» payment_account_reference|string|false|none|The unique reference assigned to the payment account.<br><br>All payment tokens and underlying PANs associated with a payment account share the same `payment_account_reference`.|
|» created_on|string(date-time)|true|none|The UTC date and time the network token was created.|
|» modified_on|string(date-time)|true|none|The UTC date and time the network token was modified.|
|token_requestor_id|string|false|none|The unique identifier for the token requestor.|
|token_scheme_id|string|false|none|The scheme-specific identifier for the network token. <br><br>For Visa, this is equivalent to the `vProvisionedTokenID`. For Mastercard, this is equivalent to the `tokenUniqueReference`.|
|_links|[NetworkTokensResponseLinks](#schemanetworktokensresponselinks)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|state|active|
|state|suspended|
|state|inactive|
|state|declined|
|state|requested|
|type|vts|
|type|mdes|

<h2 id="tocS_PagingError">PagingError</h2>
<!-- backwards compatibility -->
<a id="schemapagingerror"></a>
<a id="schema_PagingError"></a>
<a id="tocSpagingerror"></a>
<a id="tocspagingerror"></a>

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "paging_limit_invalid"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|
|error_codes|[string]|false|none|none|

<h2 id="tocS_PaymentAuthenticationData">PaymentAuthenticationData</h2>
<!-- backwards compatibility -->
<a id="schemapaymentauthenticationdata"></a>
<a id="schema_PaymentAuthenticationData"></a>
<a id="tocSpaymentauthenticationdata"></a>
<a id="tocspaymentauthenticationdata"></a>

```json
{
  "experience": "3ds"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|experience|string|false|none|The authentication experience that was used to authenticate the payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|experience|google_spa|
|experience|3ds|

<h2 id="tocS_PaymentAuthenticationRequest">PaymentAuthenticationRequest</h2>
<!-- backwards compatibility -->
<a id="schemapaymentauthenticationrequest"></a>
<a id="schema_PaymentAuthenticationRequest"></a>
<a id="tocSpaymentauthenticationrequest"></a>
<a id="tocspaymentauthenticationrequest"></a>

```json
{
  "preferred_experiences": [
    "google_spa",
    "3ds"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|preferred_experiences|[string]|false|none|An ordered list of preferred authentication experiences to attempt for the payment request.|

<h2 id="tocS_AvailablePaymentTypes">AvailablePaymentTypes</h2>
<!-- backwards compatibility -->
<a id="schemaavailablepaymenttypes"></a>
<a id="schema_AvailablePaymentTypes"></a>
<a id="tocSavailablepaymenttypes"></a>
<a id="tocsavailablepaymenttypes"></a>

```json
[
  {
    "payment_type": "Regular",
    "payment_plan": {
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    }
  }
]

```

Contains information about the available payment type returned by the partner for this purchase.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_type|string|false|none|The available payment type returned by the partner for this purchase.|
|payment_plan|[PaymentPlan](#schemapaymentplan)|false|none|The details of a recurring subscription or installment `payment_plan`.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|PayLater|
|payment_type|Installment|

<h2 id="tocS_PartnerMetadata">PartnerMetadata</h2>
<!-- backwards compatibility -->
<a id="schemapartnermetadata"></a>
<a id="schema_PartnerMetadata"></a>
<a id="tocSpartnermetadata"></a>
<a id="tocspartnermetadata"></a>

```json
{
  "order_id": "test_order_123",
  "customer_id": "cus_123",
  "session_id": "feb0096d-8486-400d-89fa-2fa716b4521f",
  "client_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzA1ZWJjLWI4MTEtMzYzNy1hYTRjLTY2ZWNhMTg3NGYzZCJ9.eyJzZXNzaW9uX2lkIjoiY2RiNDI0MGQtMTdkYy01MjJkLWJlYjEtYjAyYjRlMzllYTdhIiwiYmFzZV91cmwiOiJodHRwczovL2pzLnBsYXlncm91bmQua2xhcm5hLmNvbS9ldS9rcCIsImRlc2lnbiI6ImtsYXJuYSIsImxhbmd1YWdlIjoiZW4iLCJwdXJjaGFzZV9jb3VudHJ5IjoiREUiLCJlbnZpcm9ubWVudCI6InBsYXlncm91bmQiLCJtZXJjaGFudF9uYW1lIjoiQ2hlY2tvdXQuY29tIiwic2Vzc2lvbl90eXBlIjoiUEFZTUVOVFMiLCJjbGllbnRfZXZlbnRfYmFzZV91cmwiOiJodHRwczovL2V1LnBsYXlncm91bmQua2xhcm5hZXZ0LmNvbSIsInNjaGVtZSI6dHJ1ZSwiZXhwZXJpbWVudHMiOlt7Im5hbWUiOiJrcC1jbGllbnQtb25lLXB1cmNoYXNlLWZsb3ciLCJ2YXJpYXRlIjoidmFyaWF0ZS0xIn0seyJuYW1lIjoia3AtY2xpZW50LXV0b3BpYS1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwYy0xay1zZXJ2aWNlIiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtc3RhdGljLXdpZGdldCIsInZhcmlhdGUiOiJpbmRleCIsInBhcmFtZXRlcnMiOnsiZHluYW1pYyI6InRydWUifX0seyJuYW1lIjoiaW4tYXBwLXNkay1uZXctaW50ZXJuYWwtYnJvd3NlciIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6Im5ldy1pbnRlcm5hbC1icm93c2VyLWVuYWJsZSJ9fSx7Im5hbWUiOiJrcC1jbGllbnQtdXRvcGlhLXNkay1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtd2Vidmlldy1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImluLWFwcC1zZGstY2FyZC1zY2FubmluZyIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6ImNhcmQtc2Nhbm5pbmctZW5hYmxlIn19XSwicmVnaW9uIjoiZXUiLCJvcmRlcl9hbW91bnQiOjIwMDAsIm9mZmVyaW5nX29wdHMiOjAsIm9vIjoiY3ciLCJ2ZXJzaW9uIjoidjEuMTAuMC0xNTkwLWczZWJjMzkwNyJ9.ZxThQVo5e0Fck1vwOQ-WWAr7Zw-dsiEhjd3CW-E5p8atUhnBhrzIs6WCBeOOv3ci2VvpykVnDw2qycCTA-7TpTq1wn_kPxxixDQnYJYJzrZMoUhPLZo5pfy2a1S_t2owEQks0THRzu2wRlZwCN4ewDnVqsut60X4r3B92cJENIDtEC4Fs55CjFEmYUtsLXSspNLKvpZe2zg4O_M5yjH7XsBs5YJalZLexf4545G5vJrmVHgiA322mbgWC7BH0IU1A-ql5sFvs190_cjGaLsAvrkh9CVczUPy3X-jr3A5z1YRVfywPpvwKFWL8GZtgrdUZmgiU5_8ZZLkEPzrSucHrQ"
}

```

Processing object

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|order_id|string|false|none|Order id|
|customer_id|string|false|none|Customer id|
|session_id|string|false|none|The unique identifier for the session created.|
|client_token|string|false|none|The client token to pass to the client when initializing the JavaScript SDK.|

<h2 id="tocS_PaymentContext">PaymentContext</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontext"></a>
<a id="schema_PaymentContext"></a>
<a id="tocSpaymentcontext"></a>
<a id="tocspaymentcontext"></a>

```json
{
  "source": {
    "type": "klarna",
    "account_holder": {
      "billing_address": {
        "country": "string"
      }
    }
  },
  "amount": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "capture": true,
  "customer": {
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671",
      "phone_verified": true
    },
    "email": "card.success@tabby.ai",
    "name": "string",
    "email_verified": true,
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500
    }
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "processing": {
    "plan": {
      "type": "MERCHANT_INITIATED_BILLING",
      "skip_shipping_address": true,
      "immutable_shipping_address": true
    },
    "discount_amount": 5,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "Acme Corporation",
    "locale": "en-US",
    "shipping_preference": "set_provided_address",
    "user_action": "pay_now",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ]
  },
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/fail",
  "items": [
    {
      "type": "string",
      "name": "Test item",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string"
    }
  ],
  "metadata": {
    "coupon_code": "NY2018"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[PaymentContextSource](#schemapaymentcontextsource)|true|none|The source of the payment.|
|amount|integer|true|none|The Payment Context Payment amount.<br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>.|
|payment_type|string|false|none|"Recurring" must be specified if the payment is paid in multiple installments.|
|capture|boolean|false|none|Whether to capture the later payment (if applicable).|
|customer|[PaymentContextDetailsCustomer](#schemapaymentcontextdetailscustomer)|false|none|The customer details. <br> Required if `source.type` is `StcPay` or `Tabby`.|
|shipping|[Shipping](#schemashipping)|false|none|The shipping details.|
|processing|[PaymentContextProcessing](#schemapaymentcontextprocessing)|false|none|Use the processing object to influence or override the data during the payment processing.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment.|
|reference|string|false|none|A reference you can later use to identify this Payment Context, such as an order number.<br>Can only be alphanumeric and must be unique for Benefit.<br>For Amex, the string limit is 30 characters.|
|description|string|false|none|A description of the Payment Context.|
|success_url|string(uri)|false|none|For redirect payment methods, this overrides the default success redirect URL configured on your account.|
|failure_url|string(uri)|false|none|For redirect payment methods, this overrides the default failure redirect URL configured on your account.|
|items|[PaymentContextItems](#schemapaymentcontextitems)|false|none|The order's line items. <p/><br><br>Required for Klarna payments.|
|metadata|object|false|none|A set of key-value pairs store additional information about a transaction. You can send custom fields and up to five user-defined fields, which can be used for reporting purposes. You can supply fields of type <br><br>- `string`<br>- `number`<br>- `boolean`<br><br>Arrays and objects are not supported. <br><br>You can provide up to 20 metadata fields per API call, but the value of each field must not exceed 255 characters in length.<br><br>You can also reference [`metadata` properties](https://www.checkout.com/docs/business-operations/prevent-fraud/understand-fraud-detection#Metadata) in your custom rules for Fraud Detection.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|

<h2 id="tocS_PaymentContextCustomer">PaymentContextCustomer</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextcustomer"></a>
<a id="schema_PaymentContextCustomer"></a>
<a id="tocSpaymentcontextcustomer"></a>
<a id="tocspaymentcontextcustomer"></a>

```json
{
  "email": "johnsmith@example.com",
  "name": "John Smith"
}

```

Customer details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|email|string|false|none|The customer's email address.|
|name|string|false|none|The customer's name.|

<h2 id="tocS_PaymentContextDetails">PaymentContextDetails</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextdetails"></a>
<a id="schema_PaymentContextDetails"></a>
<a id="tocSpaymentcontextdetails"></a>
<a id="tocspaymentcontextdetails"></a>

```json
{
  "id": "pct_y3oqhf46pyzuxjbcn2giaqnb44",
  "status": "Approved",
  "payment_request": {
    "source": {
      "type": "klarna",
      "account_holder": {
        "billing_address": {
          "country": "string"
        }
      }
    },
    "amount": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "capture": true,
    "customer": {
      "email": "johnsmith@example.com",
      "name": "John Smith"
    },
    "shipping": {
      "first_name": "John",
      "last_name": "Smith",
      "email": "john.smith@example.com",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "from_address_zip": "123456",
      "timeframe": "SameDay",
      "method": "BillingAddress",
      "delay": 5
    },
    "processing": {
      "plan": {
        "type": "MERCHANT_INITIATED_BILLING",
        "skip_shipping_address": true,
        "immutable_shipping_address": true
      },
      "discount_amount": 5,
      "shipping_amount": 300,
      "tax_amount": 3000,
      "invoice_id": "string",
      "brand_name": "Acme Corporation",
      "locale": "en-US",
      "shipping_preference": "set_provided_address",
      "user_action": "pay_now",
      "partner_customer_risk_data": {
        "key": "string",
        "value": "string"
      },
      "custom_payment_method_ids": [
        "string"
      ],
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ]
    },
    "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "items": [
      {
        "type": "string",
        "name": "Test item",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "discount_amount": 1000,
        "url": "string",
        "image_url": "string"
      }
    ],
    "metadata": {
      "coupon_code": "NY2018"
    }
  },
  "partner_metadata": {
    "order_id": "test_order_123",
    "customer_id": "cus_123",
    "session_id": "feb0096d-8486-400d-89fa-2fa716b4521f",
    "client_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzA1ZWJjLWI4MTEtMzYzNy1hYTRjLTY2ZWNhMTg3NGYzZCJ9.eyJzZXNzaW9uX2lkIjoiY2RiNDI0MGQtMTdkYy01MjJkLWJlYjEtYjAyYjRlMzllYTdhIiwiYmFzZV91cmwiOiJodHRwczovL2pzLnBsYXlncm91bmQua2xhcm5hLmNvbS9ldS9rcCIsImRlc2lnbiI6ImtsYXJuYSIsImxhbmd1YWdlIjoiZW4iLCJwdXJjaGFzZV9jb3VudHJ5IjoiREUiLCJlbnZpcm9ubWVudCI6InBsYXlncm91bmQiLCJtZXJjaGFudF9uYW1lIjoiQ2hlY2tvdXQuY29tIiwic2Vzc2lvbl90eXBlIjoiUEFZTUVOVFMiLCJjbGllbnRfZXZlbnRfYmFzZV91cmwiOiJodHRwczovL2V1LnBsYXlncm91bmQua2xhcm5hZXZ0LmNvbSIsInNjaGVtZSI6dHJ1ZSwiZXhwZXJpbWVudHMiOlt7Im5hbWUiOiJrcC1jbGllbnQtb25lLXB1cmNoYXNlLWZsb3ciLCJ2YXJpYXRlIjoidmFyaWF0ZS0xIn0seyJuYW1lIjoia3AtY2xpZW50LXV0b3BpYS1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwYy0xay1zZXJ2aWNlIiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtc3RhdGljLXdpZGdldCIsInZhcmlhdGUiOiJpbmRleCIsInBhcmFtZXRlcnMiOnsiZHluYW1pYyI6InRydWUifX0seyJuYW1lIjoiaW4tYXBwLXNkay1uZXctaW50ZXJuYWwtYnJvd3NlciIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6Im5ldy1pbnRlcm5hbC1icm93c2VyLWVuYWJsZSJ9fSx7Im5hbWUiOiJrcC1jbGllbnQtdXRvcGlhLXNkay1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtd2Vidmlldy1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImluLWFwcC1zZGstY2FyZC1zY2FubmluZyIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6ImNhcmQtc2Nhbm5pbmctZW5hYmxlIn19XSwicmVnaW9uIjoiZXUiLCJvcmRlcl9hbW91bnQiOjIwMDAsIm9mZmVyaW5nX29wdHMiOjAsIm9vIjoiY3ciLCJ2ZXJzaW9uIjoidjEuMTAuMC0xNTkwLWczZWJjMzkwNyJ9.ZxThQVo5e0Fck1vwOQ-WWAr7Zw-dsiEhjd3CW-E5p8atUhnBhrzIs6WCBeOOv3ci2VvpykVnDw2qycCTA-7TpTq1wn_kPxxixDQnYJYJzrZMoUhPLZo5pfy2a1S_t2owEQks0THRzu2wRlZwCN4ewDnVqsut60X4r3B92cJENIDtEC4Fs55CjFEmYUtsLXSspNLKvpZe2zg4O_M5yjH7XsBs5YJalZLexf4545G5vJrmVHgiA322mbgWC7BH0IU1A-ql5sFvs190_cjGaLsAvrkh9CVczUPy3X-jr3A5z1YRVfywPpvwKFWL8GZtgrdUZmgiU5_8ZZLkEPzrSucHrQ"
  }
}

```

Get Payment Context Details response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The unique identifier of the payment context.|
|status|string|false|none|The status of the payment context.|
|payment_request|[PaymentContextDetailsRequest](#schemapaymentcontextdetailsrequest)|true|none|none|
|partner_metadata|[PartnerMetadata](#schemapartnermetadata)|true|none|Processing object|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Created|
|status|Approved|

<h2 id="tocS_PaymentContextDetailsCustomer">PaymentContextDetailsCustomer</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextdetailscustomer"></a>
<a id="schema_PaymentContextDetailsCustomer"></a>
<a id="tocSpaymentcontextdetailscustomer"></a>
<a id="tocspaymentcontextdetailscustomer"></a>

```json
{
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671",
    "phone_verified": true
  },
  "email": "card.success@tabby.ai",
  "name": "string",
  "email_verified": true,
  "summary": {
    "registration_date": "2023-05-01",
    "first_transaction_date": "2023-07-01",
    "last_payment_date": "2023-08-01",
    "total_order_count": 15,
    "last_payment_amount": 500
  }
}

```

The customer details. <br> Required if `source.type` is `StcPay` or `Tabby`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|phone|object|false|none|The customer's phone number. <br> Required if `source.type` is `StcPay` or `Tabby`.|
|» country_code|string|false|none|The international <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">country calling code</a>. <br> Required if `source.type` is `StcPay`.|
|» number|string|false|none|The phone number. <br> Required if `source.type` is `StcPay` or `Tabby`.|
|» phone_verified|boolean|false|none|Indicates if the phone number has been verified.|
|email|string(email)|false|none|The customer's email address. <br> Required if `source.type` is `Tabby`.|
|name|string|false|none|The customer's full name. <br> Required if `source.type` is `Tabby`.|
|email_verified|boolean|false|none|Indicates if the email address has been verified.|
|summary|object|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tabby`|
|» registration_date|string(date)|false|none|The date the customer registered.|
|» first_transaction_date|string(date)|false|none|The date of the customer's first transaction.|
|» last_payment_date|string(date)|false|none|The date of the customer's last payment.|
|» total_order_count|integer|false|none|The total number of orders made by the customer.|
|» last_payment_amount|number(float)|false|none|The amount of the customer's last payment.|

<h2 id="tocS_PaymentContextDetailsRequest">PaymentContextDetailsRequest</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextdetailsrequest"></a>
<a id="schema_PaymentContextDetailsRequest"></a>
<a id="tocSpaymentcontextdetailsrequest"></a>
<a id="tocspaymentcontextdetailsrequest"></a>

```json
{
  "source": {
    "type": "klarna",
    "account_holder": {
      "billing_address": {
        "country": "string"
      }
    }
  },
  "amount": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "capture": true,
  "customer": {
    "email": "johnsmith@example.com",
    "name": "John Smith"
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "processing": {
    "plan": {
      "type": "MERCHANT_INITIATED_BILLING",
      "skip_shipping_address": true,
      "immutable_shipping_address": true
    },
    "discount_amount": 5,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "Acme Corporation",
    "locale": "en-US",
    "shipping_preference": "set_provided_address",
    "user_action": "pay_now",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ]
  },
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/fail",
  "items": [
    {
      "type": "string",
      "name": "Test item",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string"
    }
  ],
  "metadata": {
    "coupon_code": "NY2018"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[PaymentContextSource](#schemapaymentcontextsource)|true|none|The source of the payment.|
|amount|integer|true|none|The payment context payment amount.<br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>.|
|payment_type|string|false|none|Set this value to `Recurring` if the payment is going to be paid in multiple installments.|
|capture|boolean|false|none|Specifies whether to capture the later payment (if applicable).|
|customer|[PaymentContextCustomer](#schemapaymentcontextcustomer)|false|none|Customer details|
|shipping|[Shipping](#schemashipping)|false|none|The shipping details.|
|processing|[PaymentContextProcessing](#schemapaymentcontextprocessing)|false|none|Use the processing object to influence or override the data during the payment processing.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment.|
|reference|string|false|none|A reference you can later use to identify this payment context, such as an order number.<br>Can only be alphanumeric and must be unique for Benefit.<br>For American Express, the string limit is 30 characters.|
|description|string|false|none|A description of the payment context.|
|success_url|string(uri)|false|none|For redirect payment methods, this overrides the default success redirect URL configured on your account.|
|failure_url|string(uri)|false|none|For redirect payment methods, this overrides the default failure redirect URL configured on your account.|
|items|[PaymentContextItems](#schemapaymentcontextitems)|true|none|The order's line items. <p/><br><br>Required for Klarna payments.|
|metadata|object|false|none|A set of key-value pairs store additional information about a transaction. You can send custom fields and up to five user-defined fields, which can be used for reporting purposes. You can supply fields of type <br><br>- `string`<br>- `number`<br>- `boolean`<br><br>Arrays and objects are not supported. <br><br>You can provide up to 20 metadata fields per API call, but the value of each field must not exceed 255 characters in length.<br><br>You can also reference [`metadata` properties](https://www.checkout.com/docs/business-operations/prevent-fraud/understand-fraud-detection#Metadata) in your custom rules for Fraud Detection.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|

<h2 id="tocS_PaymentContextId">PaymentContextId</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextid"></a>
<a id="schema_PaymentContextId"></a>
<a id="tocSpaymentcontextid"></a>
<a id="tocspaymentcontextid"></a>

```json
"pct_y3oqhf46pyzuxjbcn2giaqnb44"

```

Payment Context's unique identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Payment Context's unique identifier.|

<h2 id="tocS_PaymentContextItems">PaymentContextItems</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextitems"></a>
<a id="schema_PaymentContextItems"></a>
<a id="tocSpaymentcontextitems"></a>
<a id="tocspaymentcontextitems"></a>

```json
[
  {
    "type": "string",
    "name": "Test item",
    "quantity": 2,
    "unit_price": 50,
    "reference": "858818ac",
    "total_amount": 29000,
    "tax_rate": 2000,
    "tax_amount": 1000,
    "discount_amount": 1000,
    "url": "string",
    "image_url": "string"
  }
]

```

The order's line items. <p/>

Required for Klarna payments.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The item type. For example, `physical`, `digital`.|
|name|string|false|none|The descriptive name of the line item.|
|quantity|integer|false|none|The number of line items.|
|unit_price|integer|false|none|The unit price of the item in <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|reference|string|false|none|The item reference or product SKU (stock-keeping unit).|
|total_amount|number|false|none|The total cost of the line item (including any tax and discount amount) in minor currency unit. Value = (quantity x unit_price) - discount_amount.|
|tax_rate|number|false|none|The tax rate of the item line in minor units. The percentage value is represented with two implicit decimals. For example, 2000=20%.|
|tax_amount|number|false|none|The total amount of sales tax or value-added tax (VAT) on the total purchase amount. Tax should be included in the total purchase.|
|discount_amount|number|false|none|The discount applied to each invoice line item.|
|url|string|false|none|Link to the line item's product page.|
|image_url|string|false|none|Link to the line item's product page.|

<h2 id="tocS_PaymentContextPaymentRequest">PaymentContextPaymentRequest</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextpaymentrequest"></a>
<a id="schema_PaymentContextPaymentRequest"></a>
<a id="tocSpaymentcontextpaymentrequest"></a>
<a id="tocspaymentcontextpaymentrequest"></a>

```json
{
  "payment_context_id": "pct_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "processing_channel_id": "string",
  "processing": {
    "invoice_id": "string",
    "shipping_amount": 300,
    "discount_amount": 5,
    "tax_amount": 3000,
    "otp_value": "966557877988",
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ]
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "segment": {
    "brand": "Acme Corporation",
    "business_category": "Inward Payments",
    "market": "UK"
  }
}

```

Payment Context

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_context_id|[PaymentContextId](#schemapaymentcontextid)|true|none|Payment Context's unique identifier.|
|amount|integer|false|none|The payment amount.<br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|reference|string|false|none|A reference you can later use to identify this payment, such as an order number.<br>Can only be alphanumeric and must be unique for Benefit.<br>For Amex, the string limit is 30 characters.|
|description|string|false|none|A description of the payment.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment context. Required if this was not set in the request for the OAuth token.|
|processing|object|false|none|Use the processing object to influence or override the data during the payment processing.|
|» invoice_id|string|false|none|The identification number of the invoice.|
|» shipping_amount|number|false|none|The total freight or shipping and handling charges for the transaction.|
|» discount_amount|number|false|none|The discount amount.|
|» tax_amount|number|false|none|The total tax amount for the transaction, in [minor currency units](https://www.checkout.com/docs/payments/accept-payments/calculating-the-amount).|
|» otp_value|string|false|none|One time password sent to customer by SMS. <br> Required if `source.type` is `StcPay`.|
|» airline_data|[AirlineData](#schemaairlinedata)|false|none|Contains information about the airline ticket and flights booked by the customer.|
|» accommodation_data|[AccommodationData](#schemaaccommodationdata)|false|none|Contains information about the accommodation booked by the customer.|
|shipping|[Shipping](#schemashipping)|false|none|The shipping details.|
|segment|[Segment](#schemasegment)|false|none|The dimension details about business segment for payment request. At least one dimension required.|

<h2 id="tocS_PaymentContextPaymentResponse">PaymentContextPaymentResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextpaymentresponse"></a>
<a id="schema_PaymentContextPaymentResponse"></a>
<a id="tocSpaymentcontextpaymentresponse"></a>
<a id="tocspaymentcontextpaymentresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "payment_type": "Recurring",
  "payment_plan": {
    "financing": false,
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "processing": {
    "partner_order_id": "5GK24544NA744002L"
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pezuxjbcn2giaqnb44"
    }
  }
}

```

PaymentContextResponse

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|payment_type|string|false|none|This is required for card-not-present payments. For example, recurring or mail order / telephone order payments.|
|payment_plan|[PlanInstallment](#schemaplaninstallment)|false|none|The details of the installment plan|
|processing|object|false|none|none|
|» partner_order_id|string|false|none|The partner order ID.|
|customer|[CustomerResponse](#schemacustomerresponse)|false|none|Stored customer details|
|_links|object|true|none|The links related to the payment.|
|» self|[Link](#schemalink)|false|none|The URI of the Payment Context.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|
|payment_type|Installment|
|payment_type|PayLater|

<h2 id="tocS_PaymentContextProcessing">PaymentContextProcessing</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextprocessing"></a>
<a id="schema_PaymentContextProcessing"></a>
<a id="tocSpaymentcontextprocessing"></a>
<a id="tocspaymentcontextprocessing"></a>

```json
{
  "plan": {
    "type": "MERCHANT_INITIATED_BILLING",
    "skip_shipping_address": true,
    "immutable_shipping_address": true
  },
  "discount_amount": 5,
  "shipping_amount": 300,
  "tax_amount": 3000,
  "invoice_id": "string",
  "brand_name": "Acme Corporation",
  "locale": "en-US",
  "shipping_preference": "set_provided_address",
  "user_action": "pay_now",
  "partner_customer_risk_data": {
    "key": "string",
    "value": "string"
  },
  "custom_payment_method_ids": [
    "string"
  ],
  "airline_data": [
    {
      "ticket": {
        "number": "045-21351455613",
        "issue_date": "2023-05-20",
        "issuing_carrier_code": "AI",
        "travel_package_indicator": "B",
        "travel_agency_name": "World Tours",
        "travel_agency_code": "01"
      },
      "passenger": [
        {
          "first_name": "John",
          "last_name": "White",
          "date_of_birth": "1990-05-26",
          "address": {
            "country": "US"
          }
        }
      ],
      "flight_leg_details": [
        {
          "flight_number": "101",
          "carrier_code": "BA",
          "class_of_travelling": "J",
          "departure_airport": "LHR",
          "departure_date": "2023-06-19",
          "departure_time": "15:30",
          "arrival_airport": "LAX",
          "stop_over_code": "x",
          "fare_basis_code": "SPRSVR"
        }
      ]
    }
  ],
  "accommodation_data": [
    {
      "name": "The Sea View Hotel",
      "booking_reference": "HOTEL123",
      "check_in_date": "2023-06-20",
      "check_out_date": "2023-06-23",
      "address": {
        "address_line1": "123 Beach Road",
        "zip": "10001"
      },
      "state": "FL",
      "country": "USA",
      "city": "Los Angeles",
      "number_of_rooms": 2,
      "guests": [
        {
          "first_name": "Jane",
          "last_name": "Doe",
          "date_of_birth": "1985-07-14"
        }
      ],
      "room": [
        {
          "rate": "70",
          "number_of_nights_at_room_rate": "3"
        }
      ],
      "property_phone": [
        {
          "country_code": "44",
          "number": "7123456789"
        }
      ],
      "customer_service_phone": [
        {
          "country_code": "44",
          "number": "7123456789"
        }
      ]
    }
  ]
}

```

Use the processing object to influence or override the data sent during card processing.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|plan|object|false|none|The plan details for a recurring payment with PayPal. This is required when `payment_type: "recurring"`.|
|» type|string|true|none|Type of payment plan.|
|» skip_shipping_address|boolean|true|none|none|
|» immutable_shipping_address|boolean|true|none|none|
|discount_amount|number|false|none|The discount amount the merchant applied to the transaction.|
|shipping_amount|number|false|none|The total freight or shipping and handling charges for the transaction.|
|tax_amount|number|false|none|The total tax amount for the transaction, in [minor currency units](https://www.checkout.com/docs/payments/accept-payments/calculating-the-amount).|
|invoice_id|string|false|none|Invoice ID number.|
|brand_name|string|false|none|The label that overrides the business name in the PayPal account on the PayPal pages.|
|locale|string|false|none|The language and region of the customer in ISO 639-2 language code; value consists of language-country.|
|shipping_preference|string|false|none|Shipping preference.|
|user_action|string|false|none|Property required by PayPal to have an appropriate payment flow.|
|partner_customer_risk_data|object|false|none|An array of key-and-value pairs with merchant-specific data for the transaction.|
|» key|string|false|none|The key for the pair.|
|» value|string|false|none|The value for the pair.|
|custom_payment_method_ids|[string]|false|none|Promo codes - An array that can be used to define which of the configured payment options within a payment category (pay_later, pay_over_time, etc.) should be shown for this purchase.|
|airline_data|[AirlineData](#schemaairlinedata)|false|none|Contains information about the airline ticket and flights booked by the customer.|
|accommodation_data|[AccommodationData](#schemaaccommodationdata)|false|none|Contains information about the accommodation booked by the customer.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|MERCHANT_INITIATED_BILLING|
|type|MERCHANT_INITIATED_BILLING_SINGLE_AGREEMENT|
|type|CHANNEL_INITIATED_BILLING|
|type|CHANNEL_INITIATED_BILLING_SINGLE_AGREEMENT|
|type|RECURRING_PAYMENTS|
|type|PRE_APPROVED_PAYMENTS|
|shipping_preference|no_shipping|
|shipping_preference|set_provided_address|
|shipping_preference|get_from_file|
|user_action|pay_now|
|user_action|continue|

<h2 id="tocS_PaymentContextResponse">PaymentContextResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextresponse"></a>
<a id="schema_PaymentContextResponse"></a>
<a id="tocSpaymentcontextresponse"></a>
<a id="tocspaymentcontextresponse"></a>

```json
{
  "id": "pct_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 0,
  "processed_on": "2019-08-24T14:15:22Z",
  "status": "Pending",
  "response_code": "2000",
  "response_summary": "Rejected",
  "available_payment_types": [
    {
      "payment_type": "Regular",
      "payment_plan": {
        "days_between_payments": 28,
        "total_number_of_payments": 5,
        "current_payment_number": 3,
        "expiry": "20251031",
        "name": "Subscription 1234",
        "start_date": "20260507",
        "amount": 1234
      }
    }
  ],
  "unavailable_payment_types": [
    {
      "payment_type": "Regular",
      "rejection_reason": "string",
      "payment_plan": {
        "days_between_payments": 28,
        "total_number_of_payments": 5,
        "current_payment_number": 3,
        "expiry": "20251031",
        "name": "Subscription 1234",
        "start_date": "20260507",
        "amount": 1234
      },
      "description": "string"
    }
  ],
  "partner_metadata": {
    "order_id": "test_order_123",
    "customer_id": "cus_123",
    "session_id": "feb0096d-8486-400d-89fa-2fa716b4521f",
    "client_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzA1ZWJjLWI4MTEtMzYzNy1hYTRjLTY2ZWNhMTg3NGYzZCJ9.eyJzZXNzaW9uX2lkIjoiY2RiNDI0MGQtMTdkYy01MjJkLWJlYjEtYjAyYjRlMzllYTdhIiwiYmFzZV91cmwiOiJodHRwczovL2pzLnBsYXlncm91bmQua2xhcm5hLmNvbS9ldS9rcCIsImRlc2lnbiI6ImtsYXJuYSIsImxhbmd1YWdlIjoiZW4iLCJwdXJjaGFzZV9jb3VudHJ5IjoiREUiLCJlbnZpcm9ubWVudCI6InBsYXlncm91bmQiLCJtZXJjaGFudF9uYW1lIjoiQ2hlY2tvdXQuY29tIiwic2Vzc2lvbl90eXBlIjoiUEFZTUVOVFMiLCJjbGllbnRfZXZlbnRfYmFzZV91cmwiOiJodHRwczovL2V1LnBsYXlncm91bmQua2xhcm5hZXZ0LmNvbSIsInNjaGVtZSI6dHJ1ZSwiZXhwZXJpbWVudHMiOlt7Im5hbWUiOiJrcC1jbGllbnQtb25lLXB1cmNoYXNlLWZsb3ciLCJ2YXJpYXRlIjoidmFyaWF0ZS0xIn0seyJuYW1lIjoia3AtY2xpZW50LXV0b3BpYS1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwYy0xay1zZXJ2aWNlIiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtc3RhdGljLXdpZGdldCIsInZhcmlhdGUiOiJpbmRleCIsInBhcmFtZXRlcnMiOnsiZHluYW1pYyI6InRydWUifX0seyJuYW1lIjoiaW4tYXBwLXNkay1uZXctaW50ZXJuYWwtYnJvd3NlciIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6Im5ldy1pbnRlcm5hbC1icm93c2VyLWVuYWJsZSJ9fSx7Im5hbWUiOiJrcC1jbGllbnQtdXRvcGlhLXNkay1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtd2Vidmlldy1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImluLWFwcC1zZGstY2FyZC1zY2FubmluZyIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6ImNhcmQtc2Nhbm5pbmctZW5hYmxlIn19XSwicmVnaW9uIjoiZXUiLCJvcmRlcl9hbW91bnQiOjIwMDAsIm9mZmVyaW5nX29wdHMiOjAsIm9vIjoiY3ciLCJ2ZXJzaW9uIjoidjEuMTAuMC0xNTkwLWczZWJjMzkwNyJ9.ZxThQVo5e0Fck1vwOQ-WWAr7Zw-dsiEhjd3CW-E5p8atUhnBhrzIs6WCBeOOv3ci2VvpykVnDw2qycCTA-7TpTq1wn_kPxxixDQnYJYJzrZMoUhPLZo5pfy2a1S_t2owEQks0THRzu2wRlZwCN4ewDnVqsut60X4r3B92cJENIDtEC4Fs55CjFEmYUtsLXSspNLKvpZe2zg4O_M5yjH7XsBs5YJalZLexf4545G5vJrmVHgiA322mbgWC7BH0IU1A-ql5sFvs190_cjGaLsAvrkh9CVczUPy3X-jr3A5z1YRVfywPpvwKFWL8GZtgrdUZmgiU5_8ZZLkEPzrSucHrQ"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payment-contexts/pct_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

Payment Context

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentContextId](#schemapaymentcontextid)|true|none|Payment Context's unique identifier.|
|amount|integer|false|none|The payment amount.|
|processed_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date and time when the payment context was processed in UTC.|
|status|string|false|none|The status of the payment context.|
|response_code|string|false|none|The gateway response code.|
|response_summary|string|false|none|The gateway response summary.|
|available_payment_types|[AvailablePaymentTypes](#schemaavailablepaymenttypes)|false|none|Contains information about the available payment type returned by the partner for this purchase.|
|unavailable_payment_types|[UnavailablePaymentTypes](#schemaunavailablepaymenttypes)|false|none|Contains information about the unavailable payment type returned by the partner for this purchase.|
|partner_metadata|[PartnerMetadata](#schemapartnermetadata)|true|none|Processing object|
|_links|object|true|none|The links related to the payment.|
|» self|[Link](#schemalink)|false|none|The URI of the Payment Context.|

<h2 id="tocS_PaymentContextSource">PaymentContextSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextsource"></a>
<a id="schema_PaymentContextSource"></a>
<a id="tocSpaymentcontextsource"></a>
<a id="tocspaymentcontextsource"></a>

```json
{
  "type": "klarna",
  "account_holder": {
    "billing_address": {
      "country": "string"
    }
  }
}

```

The source of the payment.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentContextKlarnaSource](#schemapaymentcontextklarnasource)|false|none|Klarna Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentContextPayPalSource](#schemapaymentcontextpaypalsource)|false|none|PayPal Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentContextStcPaySource](#schemapaymentcontextstcpaysource)|false|none|StcPay Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentContextTabbySource](#schemapaymentcontexttabbysource)|false|none|PayPal Source|

<h2 id="tocS_PaymentContextKlarnaSource">PaymentContextKlarnaSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextklarnasource"></a>
<a id="schema_PaymentContextKlarnaSource"></a>
<a id="tocSpaymentcontextklarnasource"></a>
<a id="tocspaymentcontextklarnasource"></a>

```json
{
  "type": "klarna",
  "account_holder": {
    "billing_address": {
      "country": "string"
    }
  }
}

```

klarna

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type of the payment context request.|
|account_holder|object|true|none|none|
|» billing_address|object|true|none|none|
|»» country|string|true|none|The billing country or purchase country of the customer. The two-letter ISO country code of the address|

<h2 id="tocS_PaymentContextPayPalSource">PaymentContextPayPalSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextpaypalsource"></a>
<a id="schema_PaymentContextPayPalSource"></a>
<a id="tocSpaymentcontextpaypalsource"></a>
<a id="tocspaymentcontextpaypalsource"></a>

```json
{
  "type": "paypal"
}

```

paypal

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type of the payment context request.|

<h2 id="tocS_PaymentContextStcPaySource">PaymentContextStcPaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontextstcpaysource"></a>
<a id="schema_PaymentContextStcPaySource"></a>
<a id="tocSpaymentcontextstcpaysource"></a>
<a id="tocspaymentcontextstcpaysource"></a>

```json
{
  "type": "stcpay"
}

```

stcpay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type of the payment context request.|

<h2 id="tocS_PaymentContextTabbySource">PaymentContextTabbySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentcontexttabbysource"></a>
<a id="schema_PaymentContextTabbySource"></a>
<a id="tocSpaymentcontexttabbysource"></a>
<a id="tocspaymentcontexttabbysource"></a>

```json
{
  "type": "tabby"
}

```

tabby

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The source type of the payment context request.|

<h2 id="tocS_UnavailablePaymentTypes">UnavailablePaymentTypes</h2>
<!-- backwards compatibility -->
<a id="schemaunavailablepaymenttypes"></a>
<a id="schema_UnavailablePaymentTypes"></a>
<a id="tocSunavailablepaymenttypes"></a>
<a id="tocsunavailablepaymenttypes"></a>

```json
[
  {
    "payment_type": "Regular",
    "rejection_reason": "string",
    "payment_plan": {
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "description": "string"
  }
]

```

Contains information about the unavailable payment type returned by the partner for this purchase.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_type|string|false|none|The unavailable payment type returned by the partner for this purchase.|
|rejection_reason|string|false|none|The reason why the payment type is unavailable.|
|payment_plan|[PaymentPlan](#schemapaymentplan)|false|none|The details of a recurring subscription or installment `payment_plan`.|
|description|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|PayLater|
|payment_type|Installment|

<h2 id="tocS_PaymentInterfacesStorePaymentDetails">PaymentInterfacesStorePaymentDetails</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinterfacesstorepaymentdetails"></a>
<a id="schema_PaymentInterfacesStorePaymentDetails"></a>
<a id="tocSpaymentinterfacesstorepaymentdetails"></a>
<a id="tocspaymentinterfacesstorepaymentdetails"></a>

```json
"disabled"

```

Specifies whether you intend to store the cardholder's payment details.

If you set this field to `enabled`, you must:

- have obtained consent from the cardholder to store their payment details
- provide a customer ID or email address in the request

If the request's `payment_type` is set to one of the following values, you do not need to provide this field:

 - `Installment`
 - `Recurring`
 - `Unscheduled`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|disabled|
|*anonymous*|enabled|

<h2 id="tocS_GetPaymentLinkResponse">GetPaymentLinkResponse</h2>
<!-- backwards compatibility -->
<a id="schemagetpaymentlinkresponse"></a>
<a id="schema_GetPaymentLinkResponse"></a>
<a id="tocSgetpaymentlinkresponse"></a>
<a id="tocsgetpaymentlinkresponse"></a>

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Active",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "locale": "ar",
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentLinkId](#schemapaymentlinkid)|true|none|The unique identifier for a Payment Link.|
|status|string|true|none|The status of the Payment Link:<br>  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Payment Link.<br>  - `Expired`: The Payment Link has expired and can no longer be accessed.|
|payment_id|string|false|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|created_on|string(date-time)|true|none|The date and time when the Payment Link was created.|
|expires_on|string(date-time)|true|none|The date and time when the Payment Link expires.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|shipping|object|false|none|The address any products are being sent to.|
|» address|[Address](#schemaaddress)|true|none|The customer's address to ship to.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|locale|string|false|none|The language that the Payment Link page is displayed in.|
|return_url|string(uri)|false|none|If provided, the success page will include a button that redirects your customer to the provided URL.|
|_links|[PaymentLinkResponseLinks](#schemapaymentlinkresponselinks)|true|none|The links related to the Payment Link.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentLinkResponseStatusActive](#schemapaymentlinkresponsestatusactive)|false|none|A Payment Link that is active and can accept a payment from a customer.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentLinkResponseStatusPaymentReceived](#schemapaymentlinkresponsestatuspaymentreceived)|false|none|A Payment Link that has received a payment|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentLinkResponseStatusExpired](#schemapaymentlinkresponsestatusexpired)|false|none|An expired Payment Link|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Active|
|status|Payment Received|
|status|Expired|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|

<h2 id="tocS_PaymentLinkId">PaymentLinkId</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinkid"></a>
<a id="schema_PaymentLinkId"></a>
<a id="tocSpaymentlinkid"></a>
<a id="tocspaymentlinkid"></a>

```json
"stringstringstr"

```

The unique identifier for a Payment Link.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The unique identifier for a Payment Link.|

<h2 id="tocS_PaymentLinkResponseLinks">PaymentLinkResponseLinks</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinkresponselinks"></a>
<a id="schema_PaymentLinkResponseLinks"></a>
<a id="tocSpaymentlinkresponselinks"></a>
<a id="tocspaymentlinkresponselinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
  },
  "redirect": {
    "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
  }
}

```

The links related to the Payment Link.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|[Link](#schemalink)|true|none|The URI of the Payment Link details.|
|redirect|[Link](#schemalink)|true|none|The link to visit the Payment Link page.|
|payment|[Link](#schemalink)|false|none|The URI of the in progress or completed payment for this Payment Link.|
|payment_actions|[Link](#schemalink)|false|none|The URI of the actions associated with the in progress or completed payment for this Payment Link.|

<h2 id="tocS_PaymentLinkResponseStatusActive">PaymentLinkResponseStatusActive</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinkresponsestatusactive"></a>
<a id="schema_PaymentLinkResponseStatusActive"></a>
<a id="tocSpaymentlinkresponsestatusactive"></a>
<a id="tocspaymentlinkresponsestatusactive"></a>

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Active",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "locale": "ar",
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}

```

Active

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentLinkId](#schemapaymentlinkid)|true|none|The unique identifier for a Payment Link.|
|status|string|true|none|The status of the Payment Link:<br>  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Payment Link.<br>  - `Expired`: The Payment Link has expired and can no longer be accessed.|
|payment_id|string|false|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|created_on|string(date-time)|true|none|The date and time when the Payment Link was created.|
|expires_on|string(date-time)|true|none|The date and time when the Payment Link expires.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|shipping|object|false|none|The address any products are being sent to.|
|» address|[Address](#schemaaddress)|true|none|The customer's address to ship to.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|locale|string|false|none|The language that the Payment Link page is displayed in.|
|return_url|string(uri)|false|none|If provided, the success page will include a button that redirects your customer to the provided URL.|
|_links|[PaymentLinkResponseLinks](#schemapaymentlinkresponselinks)|true|none|The links related to the Payment Link.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Active|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|

<h2 id="tocS_PaymentLinkResponseStatusExpired">PaymentLinkResponseStatusExpired</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinkresponsestatusexpired"></a>
<a id="schema_PaymentLinkResponseStatusExpired"></a>
<a id="tocSpaymentlinkresponsestatusexpired"></a>
<a id="tocspaymentlinkresponsestatusexpired"></a>

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Expired",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "locale": "ar",
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}

```

Expired

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentLinkId](#schemapaymentlinkid)|true|none|The unique identifier for a Payment Link.|
|status|string|true|none|The status of the Payment Link:<br>  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Payment Link.<br>  - `Expired`: The Payment Link has expired and can no longer be accessed.|
|payment_id|string|false|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|created_on|string(date-time)|true|none|The date and time when the Payment Link was created.|
|expires_on|string(date-time)|true|none|The date and time when the Payment Link expires.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|shipping|object|false|none|The address any products are being sent to.|
|» address|[Address](#schemaaddress)|true|none|The customer's address to ship to.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|locale|string|false|none|The language that the Payment Link page is displayed in.|
|return_url|string(uri)|false|none|If provided, the success page will include a button that redirects your customer to the provided URL.|
|_links|[PaymentLinkResponseLinks](#schemapaymentlinkresponselinks)|true|none|The links related to the Payment Link.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Expired|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|

<h2 id="tocS_PaymentLinkResponseStatusPaymentReceived">PaymentLinkResponseStatusPaymentReceived</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinkresponsestatuspaymentreceived"></a>
<a id="schema_PaymentLinkResponseStatusPaymentReceived"></a>
<a id="tocSpaymentlinkresponsestatuspaymentreceived"></a>
<a id="tocspaymentlinkresponsestatuspaymentreceived"></a>

```json
{
  "id": "pl_ELqQJXdXzabU",
  "status": "Payment Received",
  "payment_id": "pay_88cb4e671m1da22e9bbbyx",
  "amount": 100,
  "currency": "GBP",
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "created_on": "2021-08-19T20:25:28.725Z",
  "expires_on": "2021-08-20T20:25:28+08:00",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "customer": {
    "email": "brucewayne@email.com",
    "name": "Bruce Wayne"
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "locale": "ar",
  "return_url": "https://example.com/success",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}

```

Payment Received

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentLinkId](#schemapaymentlinkid)|true|none|The unique identifier for a Payment Link.|
|status|string|true|none|The status of the Payment Link:<br>  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.<br>  - `Payment Received`: A payment has been received successfully using this Payment Link.<br>  - `Expired`: The Payment Link has expired and can no longer be accessed.|
|payment_id|string|true|none|Unique identifier for an in progress or completed payment for this Payment Link.|
|amount|integer|true|none|The original payment amount.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|reference|string|false|none|Your reference for the payment.|
|description|string|false|none|A description of the payment.|
|created_on|string(date-time)|true|none|The date and time when the Payment Link was created.|
|expires_on|string(date-time)|true|none|The date and time when the Payment Link expires.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|customer|object|false|none|The customer's details.|
|» email|string(email)|false|none|The email address for the customer.|
|» name|string|false|none|The customer's name.|
|shipping|object|false|none|The address any products are being sent to.|
|» address|[Address](#schemaaddress)|true|none|The customer's address to ship to.|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Any additional information stored at the point of creation.|
|locale|string|false|none|The language that the Payment Link page is displayed in.|
|return_url|string(uri)|false|none|If provided, the success page will include a button that redirects your customer to the provided URL.|
|_links|[PaymentLinkResponseLinks](#schemapaymentlinkresponselinks)|true|none|The links related to the Payment Link.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Payment Received|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|

<h2 id="tocS_PaymentLinksRequest">PaymentLinksRequest</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinksrequest"></a>
<a id="schema_PaymentLinksRequest"></a>
<a id="tocSpaymentlinksrequest"></a>
<a id="tocspaymentlinksrequest"></a>

```json
{
  "amount": 1000,
  "currency": "GBP",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "payment_ip": "90.197.169.245",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for Gold Necklace",
  "display_name": "The Jewelry Shop",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "expires_in": 604800,
  "customer": {
    "email": "ali.farid@example.com",
    "name": "Ali Farid",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "allow_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "products": [
    {
      "reference": "string",
      "url": "https://example.com/products/gold-necklace",
      "name": "Gold Necklace",
      "quantity": 1,
      "price": 1000
    }
  ],
  "metadata": {},
  "3ds": {
    "enabled": false,
    "attempt_n3d": false,
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "risk": {
    "enabled": false
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "sender": {},
  "return_url": "https://example.com/success",
  "locale": "ar",
  "capture": true,
  "capture_on": "2019-08-24T14:15:22Z",
  "instruction": {
    "purpose": "donations"
  },
  "payment_method_configuration": {
    "applepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "account_holder": {},
      "store_payment_details": "disabled"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|true|none|The payment amount. The exact format <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="_blank">depends on the currency</a>.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br><i>The `currency` and `billing.address.country` fields determine which payment methods are shown on the payment page</i>.|
|payment_type|string|false|none|This must be specified for card payments where the cardholder is not present (i.e., recurring or mail order / telephone order)|
|authorization_type|string|false|none|The authorization type.|
|payment_plan|[PaymentSessionPaymentPlanRecurring](#schemapaymentsessionpaymentplanrecurring)|false|none|The information to process a recurring payment request. To be used when the payment_type is Recurring.|
|payment_ip|[IPAddress](#schemaipaddress)|false|none|The Customers IP address. Only IPv4 and IPv6 addresses are accepted.|
|billing_descriptor|object|false|none|An optional description that is displayed on the customer's statement identifying a purchase|
|» name|string|true|none|A dynamic description of the change|
|» city|string|true|none|The city from which the charge originated|
|» reference|string|false|none|The reference shown on the statement. Required for payouts to bank accounts.|
|reference|[PaymentInterfacesReference](#schemapaymentinterfacesreference)|false|none|A reference you can use to identify the payment. For example, an order number. <br>  - For Amex payments, this must be at most 30 characters.<br>  - For Benefit payments, the reference must be a unique alphanumeric value.<br>  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.|
|description|string|false|none|A description of the payment.|
|display_name|string|false|none|The merchant name to display to customers on the checkout page.|
|processing_channel_id|string|false|none|The processing channel to use for the payment. <p/><br><br>This field is required if you have more than one processing channel associated with your API key.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|expires_in|integer|false|none|The time for which the link remains valid, in seconds.|
|customer|object|false|none|The customer's details|
|» email|string(email)|false|none|The customer's email address.|
|» name|string|false|none|The customer's name.<br><br>This will only set the name for new customers.|
|» phone|[PaymentInterfacesPhoneNumber](#schemapaymentinterfacesphonenumber)|false|none|The customer's phone number.|
|» summary|[PaymentInterfacesCustomerSummary](#schemapaymentinterfacescustomersummary)|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`|
|shipping|object|false|none|The address any products are being sent to.|
|» address|[Address](#schemaaddress)|true|none|The customer's address to ship to.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|billing|object|true|none|The billing details.|
|» address|[Address](#schemaaddress)|true|none|The billing address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|recipient|[PaymentInterfacesRecipient](#schemapaymentinterfacesrecipient)|false|none|Information about the recipient of the payment's funds. Applies to <a href="https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction">Account Funding Transactions</a>, and VISA or Mastercard <a href="https://www.checkout.com/docs/business-operations/ensure-regulatory-compliance/requirements-for-financial-institutions">domestic UK transactions processed by financial institutions</a>.|
|processing|[PaymentInterfacesProcessing](#schemapaymentinterfacesprocessing)|false|none|Use the processing object to influence or override the data sent during card processing|
|allow_payment_methods|[PaymentInterfacesPaymentMethods](#schemapaymentinterfacespaymentmethods)|false|none|Specifies which payment method options to present to the customer.<br><br>The values in this field override any equivalent values in `disabled_payment_methods`.<br><br>Some payment methods have additional field requirements. See the <a href="https://www.checkout.com/docs/payments/accept-payments/create-a-payment-link/manage-payment-links#Payment_method_field_requirements" target="_blank">documentation</a> for more information.|
|disabled_payment_methods|[PaymentInterfacesPaymentMethods](#schemapaymentinterfacespaymentmethods)|false|none|Specifies which payment method options to not present to the customer.<br><br>If you specify the same payment method in this field and in `allow_payment_methods`, the `disabled_payment_methods` value will be overridden.<br><br>Any payment method options not explicitly specified in this field will be presented to the customer by default.|
|products|[PaymentInterfacesProducts](#schemapaymentinterfacesproducts)|false|none|Contains details about the products in the order.|
|metadata|object|false|none|Allows you to store additional information about the transaction. This object only allows one level of depth, so cannot accept non-primitive data types such as objects or arrays.|
|3ds|object|false|none|Information required for 3D Secure payments.|
|» enabled|boolean|false|none|Whether to process this payment as a 3D Secure payment.|
|» attempt_n3d|boolean|false|none|Applies only when `3ds.enabled` is set to `true`. Set to `true` to attempt the payment without 3DS when the issuer, card, or network doesn’t support 3DS.|
|» challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|» allow_upgrade|boolean|false|none|Whether to process this payment as 3D Secure if the authorization was soft declined because 3DS authentication is required.|
|» exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://www.checkout.com/docs/payments/regulation-support/sca-compliance-guide#Possible_SCA_exemptions" target="_blank">SCA compliance guide</a>.|
|risk|object|false|none|Configures the risk assessment performed during payment processing.|
|» enabled|boolean|true|none|Specifies whether to perform a risk assessment.|
|customer_retry|object|false|none|Configures the parameters for customer retries.<br><br>A customer retry is a payment attempt performed by the customer on the checkout page. This differs from [authorization request retries](https://api-reference.checkout.com/#operation/requestAPaymentOrPayout!path=0/retry&t=request) performed in the back end by Checkout.com.|
|» max_attempts|integer|false|none|The maximum number of customer retry attempts, excluding the initial payment attempt.|
|sender|[PaymentInterfacesSender](#schemapaymentinterfacessender)|false|none|The sender of the payment.|
|return_url|string(uri)|false|none|If provided, the success page will include a button that redirects your customer to the provided URL.|
|locale|string|false|none|Creates a translated version of the page in the specified language|
|capture|boolean|false|none|Whether to capture the payment (if applicable).|
|capture_on|[Timestamp](#schematimestamp)|false|none|A timestamp (ISO 8601 code) that determines when the payment should be captured.<br>Providing this field will automatically set `capture` to true.|
|instruction|object|false|none|Details about the payment instruction.|
|» purpose|[Purpose](#schemapurpose)|false|none|The purpose of the payment.<br>This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).<br>See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.|
|payment_method_configuration|object|false|none|Configuration options for specific payment methods.|
|» applepay|object|false|none|Configuration options specific to Apple Pay payments.|
|»» account_holder|object|false|none|The account holder's details.|
|»» store_payment_details|[PaymentInterfacesStorePaymentDetails](#schemapaymentinterfacesstorepaymentdetails)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|» card|object|false|none|Configuration options specific to card payments.|
|»» store_payment_details|string|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled` or `collect_consent`, you must:<br><br>- Have obtained consent from the cardholder to store their payment details<br>- Provide `customer.id` or `customer.email` in the request<br><br>You do not need to provide this field if `payment_type` is set to one of the following values:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|»» account_holder|object|false|none|The account holder's details.|
|» googlepay|object|false|none|Configuration options specific to Google Pay payments.|
|»» account_holder|object|false|none|The account holder's details.|
|»» store_payment_details|[PaymentInterfacesStorePaymentDetails](#schemapaymentinterfacesstorepaymentdetails)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|
|authorization_type|Final|
|authorization_type|Estimated|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|exemption|low_value|
|exemption|secure_corporate_payment|
|exemption|trusted_listing|
|exemption|transaction_risk_assessment|
|exemption|3ds_outage|
|exemption|sca_delegation|
|exemption|out_of_sca_scope|
|exemption|other|
|exemption|low_risk_program|
|exemption|recurring_operation|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|
|store_payment_details|disabled|
|store_payment_details|enabled|
|store_payment_details|collect_consent|

<h2 id="tocS_PaymentLinksResponse">PaymentLinksResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentlinksresponse"></a>
<a id="schema_PaymentLinksResponse"></a>
<a id="tocSpaymentlinksresponse"></a>
<a id="tocspaymentlinksresponse"></a>

```json
{
  "id": "pl_ELqQJXdXzabU",
  "expires_on": "2020-08-20T20:25:28+08:00",
  "reference": "ORD-123A",
  "warnings": [
    {
      "code": "payment_method_unavailable",
      "description": "The card was provided in the `allow_payment_methods` object, but no card schemes are configured.",
      "value": "card"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
    },
    "redirect": {
      "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentLinkId](#schemapaymentlinkid)|true|none|The unique identifier for a Payment Link.|
|expires_on|string(date-time)|false|none|The date and time when the Payment Link expires.|
|reference|string|false|none|A reference you can later use to identify this payment, such as an order number.|
|warnings|[object]|false|none|Related to the `allow_payment_methods` object in the request. Included in the response if an alternative payment method is passed through, but no card schemes are configured against the account.|
|» code|string|false|none|The reason for the warning|
|» description|string|false|none|The description of the warning code|
|» value|string|false|none|Payment method for which the warning applies|
|_links|object|true|read-only|The links related to the Payment Link session.|
|» self|[Link](#schemalink)|false|none|none|
|» redirect|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|value|card|
|value|sofort|
|value|ideal|
|value|knet|
|value|bancontact|
|value|eps|
|value|p24|
|value|multibanco|

<h2 id="tocS_PaymentMethod">PaymentMethod</h2>
<!-- backwards compatibility -->
<a id="schemapaymentmethod"></a>
<a id="schema_PaymentMethod"></a>
<a id="tocSpaymentmethod"></a>
<a id="tocspaymentmethod"></a>

```json
{
  "type": "accel",
  "partner_merchant_id": "Z7X8LKJ3PQR5N"
}

```

PaymentMethod

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment method type.|
|partner_merchant_id|string|false|none|The unique identifier for the merchant, provided by the partner.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|accel|
|type|ach|
|type|alipay_cn|
|type|alipay_hk|
|type|alipay_plus|
|type|alma|
|type|amex|
|type|bancontact|
|type|blik|
|type|boost|
|type|bpi|
|type|card_scheme|
|type|cartes_bancaires|
|type|china_union_pay|
|type|connect_wallet|
|type|bacs|
|type|dana|
|type|dci|
|type|diners|
|type|discover|
|type|eps|
|type|gcash|
|type|ideal|
|type|jcb|
|type|kakaopay|
|type|klarna|
|type|knet|
|type|mada|
|type|mastercard|
|type|mbway|
|type|multibanco|
|type|nyce|
|type|omannet|
|type|p24|
|type|paypal|
|type|paypay|
|type|pulse|
|type|qpay|
|type|rabbit_line_pay|
|type|sepa|
|type|sequra|
|type|shazam|
|type|star|
|type|stcpay|
|type|swish|
|type|tamara|
|type|tng|
|type|truemoney|
|type|upi|
|type|visa|
|type|wechatpay|

<h2 id="tocS_PaymentMethodsResponse">PaymentMethodsResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentmethodsresponse"></a>
<a id="schema_PaymentMethodsResponse"></a>
<a id="tocSpaymentmethodsresponse"></a>
<a id="tocspaymentmethodsresponse"></a>

```json
{
  "methods": [
    {
      "type": "accel",
      "partner_merchant_id": "Z7X8LKJ3PQR5N"
    }
  ]
}

```

PaymentMethodsResponse

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|methods|[[PaymentMethod](#schemapaymentmethod)]|true|none|The payment methods enabled for the processing channel.|

<h2 id="tocS_3dsData">3dsData</h2>
<!-- backwards compatibility -->
<a id="schema3dsdata"></a>
<a id="schema_3dsData"></a>
<a id="tocS3dsdata"></a>
<a id="tocs3dsdata"></a>

```json
{
  "downgraded": false,
  "enrolled": "Y",
  "signature_valid": "Y",
  "authentication_response": "Y",
  "authentication_status_reason": "string",
  "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
  "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
  "eci": "string",
  "version": "2.1.0",
  "exemption": "low_value",
  "exemption_applied": "string",
  "challenged": true,
  "upgrade_reason": "sca_retry",
  "trusted_listing": {
    "status": "Y",
    "source": "01"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|downgraded|boolean|false|none|Indicates whether this was a 3D Secure payment downgraded to non-3D Secure (when `attempt_n3d` is specified)|
|enrolled|string|false|none|Indicates the 3D Secure enrollment status of the issuer<br>  * `Y` - Issuer enrolled<br>  * `N` - Customer not enrolled<br>  * `U` - Unknown|
|signature_valid|string|false|none|Verification to ensure the integrity of the response|
|authentication_response|[ResponseCode](#schemaresponsecode)|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which indicates whether a transaction qualifies as an authenticated transaction or account verification. <br/> Only available if communication with the scheme was successful and the Session is in a final state. <br/><br/> • Y = Authentication Verification Successful. <br/> • N = Not Authenticated /Account Not Verified; Transaction denied. <br/> • U = Authentication/ Account Verification Could Not Be Performed; Technical or other problem, as indicated in ARes or RReq. <br/> • A = Attempts Processing Performed; Not Authenticated/Verified, but a proof of attempted authentication/verification is provided. <br/> • C = Challenge Required; Additional authentication is required using the CReq/CRes. <br/> • D = Challenge Required; Decoupled Authentication confirmed. <br/> • R = Authentication/ Account Verification Rejected; Issuer is rejecting authentication/verification and request that authorization not be attempted. <br/> • I = Informational Only; 3DS Requestor challenge preference acknowledged.|
|authentication_status_reason|string|false|none|The response from the Directory Server (DS) or Access Control Server (ACS), which provides information on why you received the given `authentication_response` value. <br><br>This field is only returned as a result of a 3DS2 authentication, and only if the returned `authentication_response` value was not `Y`.<br>Refer to our <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions/understand-authentication-failures#Common_authentication_failures" target="_blank">authentication failures</a> documentation for more information.|
|cryptogram|string|false|none|Base64 encoded cryptographic identifier (CAVV) used by the card schemes to validate the integrity of the 3D secure payment data|
|xid|string|false|none|Unique identifier for the transaction assigned by the MPI|
|eci|string|false|none|The <a href="https://www.checkout.com/docs/developer-resources/codes/eci-values">Electronic Commerce Indicator (ECI)</a> security level returned in the payment's authentication response.|
|version|string|false|none|Indicates the version of 3D Secure that was used for authentication|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://www.checkout.com/docs/payments/regulation-support/sca-compliance-guide#Possible_SCA_exemptions" target="_blank">SCA compliance guide</a>|
|exemption_applied|string|false|none|Specifies the applied exemption during 3DS authentication|
|challenged|boolean|false|none|Indicates whether this session involved a challenge. This will only be set after communication with the scheme is finished.|
|upgrade_reason|string|false|none|Indicates the reason why the payment was upgraded to 3D Secure.|
|trusted_listing|[TrustedListing](#schematrustedlisting)|false|none|The details of the trusted listing status of the merchant|

#### Enumerated Values

|Property|Value|
|---|---|
|exemption|3ds_outage|
|exemption|data_share|
|exemption|low_risk_program|
|exemption|low_value|
|exemption|none|
|exemption|other|
|exemption|out_of_sca_scope|
|exemption|sca_delegation|
|exemption|secure_corporate_payment|
|exemption|transaction_risk_assessment|
|exemption|trusted_listing|
|exemption|trusted_listing_prompt|

<h2 id="tocS_3dsEnrollmentData">3dsEnrollmentData</h2>
<!-- backwards compatibility -->
<a id="schema3dsenrollmentdata"></a>
<a id="schema_3dsEnrollmentData"></a>
<a id="tocS3dsenrollmentdata"></a>
<a id="tocs3dsenrollmentdata"></a>

```json
{
  "downgraded": false,
  "enrolled": "Y",
  "upgrade_reason": "sca_retry"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|downgraded|boolean|false|none|Indicates whether this was a 3D Secure payment downgraded to non-3D-Secure (when `attempt_n3d` is specified)|
|enrolled|string|false|none|Indicates the 3D Secure enrollment status of the issuer<br>  * `Y` - Issuer enrolled<br>  * `N` - Customer not enrolled<br>  * `U` - Unknown|
|upgrade_reason|string|false|none|Indicates the reason why the payment was upgraded to 3D Secure.|

<h2 id="tocS_3dsRequest">3dsRequest</h2>
<!-- backwards compatibility -->
<a id="schema3dsrequest"></a>
<a id="schema_3dsRequest"></a>
<a id="tocS3dsrequest"></a>
<a id="tocs3dsrequest"></a>

```json
{
  "enabled": "false",
  "challenge_indicator": "no_preference",
  "allow_upgrade": true,
  "exemption": "low_value"
}

```

Integrated authentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|string|true|none|Whether to process this payment as a 3D Secure payment. Payments where `merchant_initiated` is `true` will be processed as <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/request-3ri-authentication" target="_blank">3DS Requestor Initiated.</a>|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[3dsRequestNonEnabled](#schema3dsrequestnonenabled)|false|none|3DS authentication not enabled|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[3dsRequestEnabled](#schema3dsrequestenabled)|false|none|3DS authentication enabled|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|enabled|false|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|

<h2 id="tocS_3dsRequestEnabled">3dsRequestEnabled</h2>
<!-- backwards compatibility -->
<a id="schema3dsrequestenabled"></a>
<a id="schema_3dsRequestEnabled"></a>
<a id="tocS3dsrequestenabled"></a>
<a id="tocs3dsrequestenabled"></a>

```json
{
  "enabled": "true",
  "challenge_indicator": "no_preference",
  "attempt_n3d": true,
  "exemption": "low_value",
  "merchant_authentication_info": {
    "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
    "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
    "three_ds_req_auth_data": "string"
  },
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string"
  }
}

```

true

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|string|true|none|Whether to process this payment as a 3D Secure payment. Payments where `merchant_initiated` is `true` will be processed as <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/request-3ri-authentication" target="_blank">3DS Requestor Initiated.</a>|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|attempt_n3d|boolean|false|none|Applies only when `3ds.enabled` is set to `true`. Set to `true` to attempt the payment without 3DS when the issuer, card, or network doesn’t support 3DS.|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://docs.checkout.com/four/payments/regulation-support/sca-compliance-guide#SCAcomplianceguide-PossibleSCAexemptionsexemptions" target="_blank">SCA compliance guide</a>|
|merchant_authentication_info|[MerchantAuthenticationInfo](#schemamerchantauthenticationinfo)|false|none|The information about how the 3DS Requestor authenticated the cardholder before or during the transaction|
|account_info|[AccountInfo](#schemaaccountinfo)|false|none|Additional information about the cardholder's account|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|enabled|false|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|exemption|low_value|
|exemption|trusted_listing|
|exemption|trusted_listing_prompt|
|exemption|transaction_risk_assessment|
|exemption|data_share|

<h2 id="tocS_3dsRequestNonEnabled">3dsRequestNonEnabled</h2>
<!-- backwards compatibility -->
<a id="schema3dsrequestnonenabled"></a>
<a id="schema_3dsRequestNonEnabled"></a>
<a id="tocS3dsrequestnonenabled"></a>
<a id="tocs3dsrequestnonenabled"></a>

```json
{
  "enabled": "false",
  "challenge_indicator": "no_preference",
  "allow_upgrade": true,
  "exemption": "low_value"
}

```

false

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|string|true|none|Whether to process this payment as a 3D Secure payment. Payments where `merchant_initiated` is `true` will be processed as <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/request-3ri-authentication" target="_blank">3DS Requestor Initiated.</a>|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|allow_upgrade|boolean|false|none|Indicates whether to process this payment as 3D Secure if the authorization was soft declined due to 3DS authentication required. For processing channels created before October 12, 2022, the value will default to `false`.|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://docs.checkout.com/four/payments/regulation-support/sca-compliance-guide#SCAcomplianceguide-PossibleSCAexemptionsexemptions" target="_blank">SCA compliance guide</a>|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|enabled|false|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|exemption|low_value|
|exemption|trusted_listing|
|exemption|trusted_listing_prompt|
|exemption|transaction_risk_assessment|
|exemption|3ds_outage|
|exemption|sca_delegation|
|exemption|out_of_sca_scope|
|exemption|low_risk_program|
|exemption|recurring_operation|
|exemption|data_share|
|exemption|other|

<h2 id="tocS_3dsRequestStandalone">3dsRequestStandalone</h2>
<!-- backwards compatibility -->
<a id="schema3dsrequeststandalone"></a>
<a id="schema_3dsRequestStandalone"></a>
<a id="tocS3dsrequeststandalone"></a>
<a id="tocs3dsrequeststandalone"></a>

```json
{
  "enabled": true,
  "authentication_id": "sid_y3oqhf46pyzuxjbcn2giaqnb44"
}

```

Standalone authentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Whether to process this payment as a 3D Secure payment|
|authentication_id|string|true|none|The unique identifier for your 3D Secure session.|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|

<h2 id="tocS_3dsRequestThirdParty">3dsRequestThirdParty</h2>
<!-- backwards compatibility -->
<a id="schema3dsrequestthirdparty"></a>
<a id="schema_3dsRequestThirdParty"></a>
<a id="tocS3dsrequestthirdparty"></a>
<a id="tocs3dsrequestthirdparty"></a>

```json
{
  "enabled": true,
  "eci": "05",
  "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=",
  "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
  "version": "2.0.1",
  "exemption": "low_value",
  "status": "Y",
  "authentication_date": "2020-09-03T10:11:12Z",
  "authentication_amount": 200,
  "flow_type": "challenged",
  "challenge_indicator": "no_preference",
  "status_reason_code": "01",
  "challenge_cancel_reason": "01",
  "score": "string",
  "cryptogram_algorithm": "1",
  "initial_authentication": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  }
}

```

Third party authentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Whether to process this payment as a 3D Secure payment|
|eci|string|true|none|The Electronic Commerce Indicator security level associated with the 3D Secure enrollment result. Required if using a third-party merchant plug-in (MPI)|
|cryptogram|string|true|none|A Base64 encoded cryptographic identifier (CAVV) used by the card schemes to validate the cardholder authentication result (3D Secure). Required if using an external MPI|
|xid|string|true|none|The 3D Secure transaction identifier. Required if using an external MPI with 3D Secure 2.X.X and a Mastercard card, or with 3D Secure 1.X.X for any supported card scheme|
|version|string|true|none|Indicates the version of 3D Secure that was used for authentication. Defaults to 1.0.0 if not provided|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://docs.checkout.com/four/payments/regulation-support/sca-compliance-guide#SCAcomplianceguide-PossibleSCAexemptionsexemptions" target="_blank">SCA compliance guide</a>|
|status|string|false|none|The transaction status returned from the card Issuer’s Access Control Server (ACS) or Scheme Directory Server (DS). For 3DS Secure 1, this is the PaRes Status. for 3D Secure 2, this is the transaction status of ARes(frictionless flow) or RReq (Challenge flow)|
|authentication_date|string¦null|false|none|Authentication date and time. Format ISO-8601|
|authentication_amount|number¦null|false|none|Authentication amount|
|flow_type|string|false|none|Indicates whether the 3D Secure 2 authentication was challenged or frictionless.|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|status_reason_code|string|false|none|A code indicating the reason for the transaction status|
|challenge_cancel_reason|string|false|none|Indicates a cancel reason for a challenge in the case of authentication. Can be any number from 00 to 99, with 00 being specific ONLY to Cartes Bancaires.|
|score|string|false|none|Risk score calculated by Directory Server (DS). Cartes Bancaires 3D Secure 2 only.|
|cryptogram_algorithm|string|false|none|The algorithm used by the Issuer Access Control Server (ACS) to calculate the Authentication cryptogram. This is the AVALGO data returned in Cartes Bancaires Authentication.|
|initial_authentication|[InitialAuthentication](#schemainitialauthentication)|false|none|The details of a previous authentication|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|exemption|low_value|
|exemption|secure_corporate_payment|
|exemption|trusted_listing|
|exemption|transaction_risk_assessment|
|exemption|3ds_outage|
|exemption|sca_delegation|
|exemption|out_of_sca_scope|
|exemption|other|
|exemption|low_risk_program|
|exemption|recurring_operation|
|flow_type|challenged|
|flow_type|frictionless|
|flow_type|frictionless_delegated|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|

<h2 id="tocS_AccommodationData">AccommodationData</h2>
<!-- backwards compatibility -->
<a id="schemaaccommodationdata"></a>
<a id="schema_AccommodationData"></a>
<a id="tocSaccommodationdata"></a>
<a id="tocsaccommodationdata"></a>

```json
[
  {
    "name": "The Sea View Hotel",
    "booking_reference": "HOTEL123",
    "check_in_date": "2023-06-20",
    "check_out_date": "2023-06-23",
    "address": {
      "address_line1": "123 Beach Road",
      "zip": "10001"
    },
    "state": "FL",
    "country": "USA",
    "city": "Los Angeles",
    "number_of_rooms": 2,
    "guests": [
      {
        "first_name": "Jane",
        "last_name": "Doe",
        "date_of_birth": "1985-07-14"
      }
    ],
    "room": [
      {
        "rate": "70",
        "number_of_nights_at_room_rate": "3"
      }
    ],
    "property_phone": [
      {
        "country_code": "44",
        "number": "7123456789"
      }
    ],
    "customer_service_phone": [
      {
        "country_code": "44",
        "number": "7123456789"
      }
    ]
  }
]

```

Contains information about the accommodation booked by the customer.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Accommodation Data|object|false|none|none|
|» name|string|false|none|For lodging, contains the lodging name that appears on the storefront/customer receipts. For cruise, contains the ship name booked for the cruise.|
|» booking_reference|string|false|none|A unique identifier for the booking.|
|» check_in_date|string(date)|false|none|For lodging, contains the actual or scheduled date the guest checked-in. For cruise, contains the cruise departure date also known as sail date.|
|» check_out_date|string(date)|false|none|For lodging, contains the actual or scheduled date the guest checked-out. For cruise, contains the cruise return date also known as sail end date.|
|» address|object|false|none|The address details of the accommodation.|
|»» address_line1|string|false|none|The first line of the address.|
|»» zip|string|false|none|The postal code for the address.|
|» state|string|false|none|The state or province of the address country (ISO 3166-2 code of up to two alphanumeric characters).|
|» country|string|false|none|The ISO country code of the address.|
|» city|string|false|none|The address city.|
|» number_of_rooms|integer|false|none|The total number of rooms booked for the accommodation.|
|» guests|[object]|false|none|Contains information about the guests staying at the accommodation.|
|»» first_name|string|false|none|The first name of the guest.|
|»» last_name|string|false|none|The last name of the guest.|
|»» date_of_birth|string(date)|false|none|The date of birth of the guest.|
|» room|[object]|false|none|Contains information about the rooms booked by the customer.|
|»» rate|string|false|none|For lodging, contains the nightly rate for one room. For cruise, contains the total cost of the cruise.|
|»» number_of_nights_at_room_rate|string|false|none|For lodging, contains the number of nights charged at the rate provided in the rate field. For cruise, contains the length of the cruise in days.|
|» property_phone|[object]|false|none|The property's phone information.|
|»» country_code|string|false|none|The property's phone country code.|
|»» number|string|false|none|The property's phone number.|
|» customer_service_phone|[object]|false|none|The customer service phone information.|
|»» country_code|string|false|none|The customer service phone country code.|
|»» number|string|false|none|The customer service phone number.|

<h2 id="tocS_AccountInfo">AccountInfo</h2>
<!-- backwards compatibility -->
<a id="schemaaccountinfo"></a>
<a id="schema_AccountInfo"></a>
<a id="tocSaccountinfo"></a>
<a id="tocsaccountinfo"></a>

```json
{
  "purchase_count": 10,
  "account_age": "no_account",
  "add_card_attempts": 10,
  "shipping_address_age": "this_transaction",
  "account_name_matches_shipping_name": true,
  "suspicious_account_activity": true,
  "transactions_today": 10,
  "authentication_method": "no_authentication",
  "cardholder_account_age_indicator": "no_account,",
  "account_change": "2019-08-24T14:15:22Z",
  "account_change_indicator": "this_transaction",
  "account_date": "2019-08-24T14:15:22Z",
  "account_password_change": "2019-08-24T14:15:22Z",
  "account_password_change_indicator": "no_change",
  "transactions_per_year": 2,
  "payment_account_age": "2019-08-24T14:15:22Z",
  "shipping_address_usage": "2019-08-24T14:15:22Z",
  "account_type": "not_applicable",
  "account_id": "string"
}

```

AccountInfo

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|purchase_count|number|false|none|The number of purchases with this cardholder's account during the last six months|
|account_age|string|false|none|The length of time that the payment account was enrolled in the cardholder's account|
|add_card_attempts|number|false|none|The number of _Add Card_ attempts in the last 24 hours|
|shipping_address_age|string|false|none|Indicates when the shipping address for this transaction was first used|
|account_name_matches_shipping_name|boolean|false|none|Indicates if the cardholder name on the account is identical to the shipping name used for this transaction|
|suspicious_account_activity|boolean|false|none|Indicates whether suspicious activity on the cardholder account has been observed|
|transactions_today|number|false|none|The number of transactions (successful and abandoned) for the cardholder account across all payment accounts in the previous 24 hours|
|authentication_method|string|false|none|Information about how the cardholder was authenticated before or during the transaction|
|cardholder_account_age_indicator|string|false|none|The length of time the cardholder has held the account with the 3DS Requestor|
|account_change|string(date-time)|false|none|The UTC date and time the cardholder’s account with the 3DS Requestor was last changed, in ISO 8601 format.<br><br>Changes that affect this value include:<br>- updating the billing or shipping address<br>- adding a new payment account<br>- adding a new user|
|account_change_indicator|string|false|none|The amount of time since the cardholder’s account information with the 3DS Requestor was last changed.<br><br>Changes that affect this value include:<br>- updating the billing or shipping address<br>- adding a new payment account<br>- adding a new user|
|account_date|string(date-time)|false|none|The UTC date and time the cardholder opened the account with the 3DS Requestor, in ISO 8601 format.|
|account_password_change|string(date-time)|false|none|The UTC date and time the cardholder’s account with the 3DS Requestor was last reset or had a password change, in ISO 8601 format.|
|account_password_change_indicator|string|false|none|The amount of time since the cardholder’s account with the 3DS Requestor was last reset or had a password change.|
|transactions_per_year|integer|false|none|The number of transactions associated with the cardholder's account with the 3DS Requestor in the previous year. This value includes both successful and abandoned transactions, across all payment accounts. <br><br>Set this value to `999` if the number of transactions is `1000` or greater.|
|payment_account_age|string(date-time)|false|none|The UTC date and time the payment account was enrolled in the cardholder’s account with the 3DS Requestor, in ISO 8601 format.|
|shipping_address_usage|string(date-time)|false|none|The UTC date and time the shipping address used for the transaction was first used with the 3DS Requestor, in ISO 8601 format.|
|account_type|string|false|none|The type of account, in the case of a card product with multiple accounts.|
|account_id|string|false|none|Additional information about the account optionally provided by the 3DS Requestor|

#### Enumerated Values

|Property|Value|
|---|---|
|account_age|no_account|
|account_age|created_during_transaction|
|account_age|less_than_thirty_days|
|account_age|thirty_to_sixty_days|
|account_age|more_than_sixty_days|
|shipping_address_age|this_transaction|
|shipping_address_age|less_than_thirty_days|
|shipping_address_age|thirty_to_sixty_days|
|shipping_address_age|more_than_sixty_days|
|authentication_method|no_authentication|
|authentication_method|own_credentials|
|authentication_method|federated_id|
|authentication_method|issuer_credentials|
|authentication_method|third_party_authentication|
|authentication_method|fido|
|cardholder_account_age_indicator|no_account,|
|cardholder_account_age_indicator|this_transaction|
|cardholder_account_age_indicator|less_than_thirty_days|
|cardholder_account_age_indicator|thirty_to_sixty_days|
|cardholder_account_age_indicator|more_than_sixty_days|
|account_change_indicator|this_transaction|
|account_change_indicator|less_than_thirty_days|
|account_change_indicator|thirty_to_sixty_days|
|account_change_indicator|more_than_sixty_days|
|account_password_change_indicator|no_change|
|account_password_change_indicator|this_transaction|
|account_password_change_indicator|less_than_thirty_days|
|account_password_change_indicator|thirty_to_sixty_days|
|account_password_change_indicator|more_than_sixty_days|
|account_type|not_applicable|
|account_type|credit|
|account_type|debit|

<h2 id="tocS_ActionId">ActionId</h2>
<!-- backwards compatibility -->
<a id="schemaactionid"></a>
<a id="schema_ActionId"></a>
<a id="tocSactionid"></a>
<a id="tocsactionid"></a>

```json
"act_y3oqhf46pyzuxjbcn2giaqnb44"

```

The action identifier

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The action identifier|

<h2 id="tocS_Aggregator">Aggregator</h2>
<!-- backwards compatibility -->
<a id="schemaaggregator"></a>
<a id="schema_Aggregator"></a>
<a id="tocSaggregator"></a>
<a id="tocsaggregator"></a>

```json
{
  "sub_merchant_id": "9cf70789ba90123",
  "aggregator_id_visa": "10012345",
  "aggregator_id_mc": "00000123456"
}

```

Aggregator

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|sub_merchant_id|string|false|none|The sub-merchant ID.|
|aggregator_id_visa|string|false|none|The Visa identifier for the payment aggregator.|
|aggregator_id_mc|string|false|none|The Mastercard identifier for the payment aggregator.|

<h2 id="tocS_AirlineData">AirlineData</h2>
<!-- backwards compatibility -->
<a id="schemaairlinedata"></a>
<a id="schema_AirlineData"></a>
<a id="tocSairlinedata"></a>
<a id="tocsairlinedata"></a>

```json
[
  {
    "ticket": {
      "number": "045-21351455613",
      "issue_date": "2023-05-20",
      "issuing_carrier_code": "AI",
      "travel_package_indicator": "B",
      "travel_agency_name": "World Tours",
      "travel_agency_code": "01"
    },
    "passenger": [
      {
        "first_name": "John",
        "last_name": "White",
        "date_of_birth": "1990-05-26",
        "address": {
          "country": "US"
        }
      }
    ],
    "flight_leg_details": [
      {
        "flight_number": "101",
        "carrier_code": "BA",
        "class_of_travelling": "J",
        "departure_airport": "LHR",
        "departure_date": "2023-06-19",
        "departure_time": "15:30",
        "arrival_airport": "LAX",
        "stop_over_code": "x",
        "fare_basis_code": "SPRSVR"
      }
    ]
  }
]

```

Contains information about the airline ticket and flights booked by the customer.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Airline Data|object|false|none|none|
|» ticket|object|false|none|Contains information about the airline ticket.|
|»» number|string|false|none|The ticket's unique identifier.|
|»» issue_date|string(date)|false|none|Date the airline ticket was issued.|
|»» issuing_carrier_code|string|false|none|Carrier code of the ticket issuer.|
|»» travel_package_indicator|string|false|none|C = Car rental reservation, A = Airline flight reservation, B = Both car rental and airline flight reservations included, N = Unknown.|
|»» travel_agency_name|string|false|none|The name of the travel agency.|
|»» travel_agency_code|string|false|none|The unique identifier from IATA or ARC for the travel agency that issues the ticket.|
|» passenger|[object]|false|none|Contains information about the passenger(s) on the flight.|
|»» Passenger Data|object|false|none|none|
|»»» first_name|string|false|none|The passenger's first name.|
|»»» last_name|string|false|none|The passenger's last name.|
|»»» date_of_birth|string(date)|false|none|The passenger's date of birth.|
|»»» address|object|false|none|Contains information about the passenger's address.|
|»»»» country|string|false|none|The two-letter ISO country code of the passenger's country residence.|
|» flight_leg_details|[object]|false|none|Contains information about the flight leg(s) booked by the customer.|
|»» flight_number|string|false|none|The flight identifier.|
|»» carrier_code|string|false|none|The IATA 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details.|
|»» class_of_travelling|string|false|none|A one-letter travel class identifier. The following are common: F = First class, J = Business class, Y = Economy class, W = Premium economy.|
|»» departure_airport|string|false|none|The IATA three-letter airport code of the departure airport. This field is required if the airline data includes leg details.|
|»» departure_date|string(date)|false|none|The date of the scheduled take off.|
|»» departure_time|string|false|none|The time of the scheduled take off.|
|»» arrival_airport|string|false|none|The IATA 3-letter airport code of the destination airport. This field is required if the airline data includes leg details.|
|»» stop_over_code|string|false|none|A one-letter code that indicates whether the passenger is entitled to make a stopover. Can be a space, O if the passenger is entitled to make a stopover, or X if they are not.|
|»» fare_basis_code|string|false|none|The fare basis code, alphanumeric.|

<h2 id="tocS_AmountAllocations">AmountAllocations</h2>
<!-- backwards compatibility -->
<a id="schemaamountallocations"></a>
<a id="schema_AmountAllocations"></a>
<a id="tocSamountallocations"></a>
<a id="tocsamountallocations"></a>

```json
[
  {
    "id": "ent_w4jelhppmfiufdnatam37wrfc4",
    "amount": 1000,
    "reference": "ORD-5023-4E89",
    "commission": {
      "amount": 1000,
      "percentage": 1.125
    }
  }
]

```

The sub-entities that the payment is being processed on behalf of

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Amount Allocations|object|false|none|none|
|» id|string|true|none|The id of the sub-entity.|
|» amount|integer(int64)|true|none|The split amount - this will be credited to your sub-entity's currency account. The sum of all split amounts must be equal to the payment amount.      <br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|» reference|string|false|none|A reference you can later use to identify this split, such as an order number.|
|» commission|object|false|none|Commission you'd like to collect from this split - this will be credited to your currency account. The commission cannot exceed the split amount.<br><br>Commission = (`amount` * `commission.percentage`) + `commission.amount`|
|»» amount|integer|false|none|Optional fixed amount of commission to collect.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|»» percentage|number|false|none|Optional percentage of commission to collect.<br><br>Supports up to 8 decimal places.|

<h2 id="tocS_AuthorizationRequest">AuthorizationRequest</h2>
<!-- backwards compatibility -->
<a id="schemaauthorizationrequest"></a>
<a id="schema_AuthorizationRequest"></a>
<a id="tocSauthorizationrequest"></a>
<a id="tocsauthorizationrequest"></a>

```json
{
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer(int64)|false|none|The amount to increase the authorization by. Omit the amount or provide a value of `0` to extend the authorization validity period|
|reference|string|false|none|A reference you can later use to identify this authorization request|
|metadata|object|false|none|A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. <br><br>The `metadata` object only supports primitive data types. Objects and arrays are not supported.|

<h2 id="tocS_AuthorizationResponse">AuthorizationResponse</h2>
<!-- backwards compatibility -->
<a id="schemaauthorizationresponse"></a>
<a id="schema_AuthorizationResponse"></a>
<a id="tocSauthorizationresponse"></a>
<a id="tocsauthorizationresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 6540,
  "currency": "USD",
  "approved": true,
  "status": "Authorized",
  "auth_code": "643381",
  "response_code": "10000",
  "response_summary": "Approved",
  "expires_on": "string",
  "balances": {
    "total_authorized": 6540,
    "total_voided": 0,
    "available_to_void": 6540,
    "total_captured": 0,
    "available_to_capture": 6540,
    "total_refunded": 0,
    "available_to_refund": 0
  },
  "processed_on": "2019-08-24T14:15:22Z",
  "reference": "ORD-5023-4E89",
  "processing": {
    "retrieval_reference_number": "909913440644",
    "acquirer_transaction_id": "440644309099499894406",
    "recommendation_code": "02",
    "surcharge_amount": 200,
    "scheme_transaction_link_id": "string"
  },
  "eci": "06",
  "scheme_id": "489341065491658",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "actions": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
    },
    "authorize": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
    },
    "void": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/voids"
    },
    "capture": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/capture"
    }
  }
}

```

Authorization Response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the action performed against this payment|
|amount|integer|true|none|The payment amount|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the payment|
|approved|boolean|true|none|Whether or not the authorization was successful|
|status|string|true|none|The status of the payment|
|auth_code|string|false|none|The acquirer authorization code if the payment was authorized|
|response_code|string|true|none|The Gateway response code|
|response_summary|string|false|none|The Gateway response summary|
|expires_on|string|false|none|The timestamp (ISO 8601 code) for when the authorization's validity period ends|
|balances|[PaymentResponseBalances](#schemapaymentresponsebalances)|false|none|The payment balances|
|processed_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the payment was processed|
|reference|string|false|none|Your reference for the payment|
|processing|object|false|none|Returns information related to the processing of the payment|
|» retrieval_reference_number|string|false|none|A unique identifier for the authorization that is submitted to the card scheme during processing|
|» acquirer_transaction_id|string|false|none|A unique identifier for the transaction generated by the acquirer|
|» recommendation_code|string|false|none|A <a href="https://www.checkout.com/docs/resources/codes/recommendation-codes" target="blank">code</a> that represents the next recommended action for the payment|
|» surcharge_amount|integer(int64)|false|none|Surcharge amount applied to the transaction in minor units by the merchant|
|» scheme_transaction_link_id|string|false|none|The scheme transaction link identifier.|
|eci|string|false|none|The final Electronic Commerce Indicator (ECI) security level used to authorize the payment. Applicable for 3D Secure and network token payments|
|scheme_id|string|false|none|The scheme transaction identifier|
|_links|object|true|none|The links related to the payment|
|» self|[Link](#schemalink)|true|none|The URI of the payment|
|» actions|[Link](#schemalink)|true|none|A link to the payment's associated actions|
|» authorize|[Link](#schemalink)|false|none|A link to increment the authorization, where applicable|
|» void|[Link](#schemalink)|false|none|A link to void the payment, where applicable|
|» capture|[Link](#schemalink)|false|none|A link to capture the payment, where applicable|
|» refund|[Link](#schemalink)|false|none|A link to refund the payment, where applicable|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Authorized|
|status|Declined|

<h2 id="tocS_BankAccountFields">BankAccountFields</h2>
<!-- backwards compatibility -->
<a id="schemabankaccountfields"></a>
<a id="schema_BankAccountFields"></a>
<a id="tocSbankaccountfields"></a>
<a id="tocsbankaccountfields"></a>

```json
{
  "sections": [
    {
      "name": "Account Details",
      "fields": [
        {
          "id": "iban",
          "type": "string",
          "display": "IBAN",
          "description": "Number (which can contain letters) that identifies the account",
          "section": "account",
          "required": true,
          "validation_regex": "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,18}$",
          "min_length": 22,
          "max_length": 22
        },
        {
          "id": "account_holder.first_name",
          "type": "string",
          "display": "First name",
          "description": "The account holder's first name",
          "section": "account",
          "required": true
        },
        {
          "id": "account_holder.last_name",
          "type": "string",
          "display": "First name",
          "description": "The account holder's last name",
          "section": "account",
          "required": true
        }
      ]
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|sections|[object]|false|none|none|
|» name|string|true|none|The name of the section|
|» fields|[object]|false|none|none|
|»» id|string|true|none|The field identifier|
|»» section|string|false|none|The section to display the field in|
|»» display|string|true|none|The field's display name|
|»» help_text|string|false|none|The help text that explains the purpose of the field|
|»» type|string|true|none|The type of field|
|»» required|boolean|true|none|Whether the field is required|
|»» validation_regex|string|false|none|A regular expression that can be used to validate the input of the field|
|»» min_length|integer|false|none|The minimum length of the field|
|»» max_length|integer|false|none|The maximum length of the field|
|»» allowed_options|[object]|false|none|The allowed options for the field|
|»»» id|string|false|none|The option identifier|
|»»» display|string|false|none|The option display value|
|»» dependencies|[object]|false|none|The field's dependencies|
|»»» field_id|string|false|none|The field identifier|
|»»» value|string|false|none|The value of the dependent field that match in order for this field to be displayed|

<h2 id="tocS_BankPayoutAcceptedResponse">BankPayoutAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemabankpayoutacceptedresponse"></a>
<a id="schema_BankPayoutAcceptedResponse"></a>
<a id="tocSbankpayoutacceptedresponse"></a>
<a id="tocsbankpayoutacceptedresponse"></a>

```json
{
  "id": "pay_dvxl6j6stpqufkzfgbaahmfrzm",
  "status": "Pending",
  "reference": "PO-215-5721",
  "instruction": {
    "value_date": "2020-06-12T22:27:42.512594Z"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm"
    },
    "actions": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm/actions"
    }
  }
}

```

Bank Payout

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The payout's unique identifier.|
|status|string|true|none|The status of the payout.|
|reference|string|false|none|The payout reference.|
|instruction|[PaymentInstructionResponse](#schemapaymentinstructionresponse)|true|none|Instruction details for payouts to bank accounts.|
|_links|object|true|none|The links related to the payout.|
|» self|object|false|none|The URI of the payout.|
|»» href|string|false|none|The link URL.|
|» actions|object|false|none|The actions URI of the payout.|
|»» href|string|false|none|The link URL.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Pending|

<h2 id="tocS_BankPayoutRequest">BankPayoutRequest</h2>
<!-- backwards compatibility -->
<a id="schemabankpayoutrequest"></a>
<a id="schema_BankPayoutRequest"></a>
<a id="tocSbankpayoutrequest"></a>
<a id="tocsbankpayoutrequest"></a>

```json
{
  "source": {
    "type": "entity",
    "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
  },
  "destination": {
    "type": "id",
    "id": "src_wmlfc3zyhqzehihu7giusaaawu"
  },
  "amount": 6540,
  "currency": "USD",
  "reference": "Withdrawal",
  "billing_descriptor": {
    "reference": "stringstrin"
  },
  "sender": {
    "type": "instrument",
    "reference": "string"
  },
  "instruction": {
    "scheme": "local",
    "remittance": {
      "reference": "string"
    }
  },
  "processing_channel_id": "string",
  "segment": {
    "brand": "Acme Corporation",
    "business_category": "Inward Payments",
    "market": "UK"
  }
}

```

Bank Payout

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[BankPayoutRequestSource](#schemabankpayoutrequestsource)|true|none|The source from which the payout is funded.|
|destination|[PaymentRequestDestination](#schemapaymentrequestdestination)|true|none|The destination of the payout.|
|amount|integer|true|none|The amount to pay out. Value must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>. For example, cents for USD.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO code</a> of the destination currency <br><i>The currency should match that of the destination account</i>.|
|reference|string|false|none|A reference you can use to identify the payment. For example, an order number.|
|billing_descriptor|[PayoutBillingDescriptor](#schemapayoutbillingdescriptor)|true|none|Beneficiary banks typically construct the billing descriptor using the billing descriptor reference and sender information. For direct sellers, the sender is typically your entity’s legal company name. If the ultimate sender is provided, then it is the values of the Sender object.|
|sender|[PayoutSender](#schemapayoutsender)|false|none|The ultimate sender of the payout – that is, your customer.<br>Not supported for Platform or Direct Seller Checkout.com clients.|
|instruction|[PaymentInstruction](#schemapaymentinstruction)|false|none|Details about the instruction for payouts to bank accounts.|
|processing_channel_id|string|true|none|The processing channel identifier|
|segment|[Segment](#schemasegment)|false|none|The dimension details about business segment for payment request. At least one dimension required.|

<h2 id="tocS_BankPayoutRequestSource">BankPayoutRequestSource</h2>
<!-- backwards compatibility -->
<a id="schemabankpayoutrequestsource"></a>
<a id="schema_BankPayoutRequestSource"></a>
<a id="tocSbankpayoutrequestsource"></a>
<a id="tocsbankpayoutrequestsource"></a>

```json
{
  "type": "entity",
  "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
}

```

The source from which the payout is funded.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[BankPayoutRequestCurrencyAccountSource](#schemabankpayoutrequestcurrencyaccountsource)|false|none|A currency account source.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[BankPayoutRequestEntitySource](#schemabankpayoutrequestentitysource)|false|none|A currency account source.|

<h2 id="tocS_BillingDescriptor">BillingDescriptor</h2>
<!-- backwards compatibility -->
<a id="schemabillingdescriptor"></a>
<a id="schema_BillingDescriptor"></a>
<a id="tocSbillingdescriptor"></a>
<a id="tocsbillingdescriptor"></a>

```json
{
  "name": "SUPERHEROES.COM",
  "city": "GOTHAM",
  "reference": "string",
  "local_descriptors": [
    {
      "name": "漢字",
      "character_set": "kanji"
    }
  ]
}

```

An optional description that is displayed on the customer's statement identifying a purchase.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|A dynamic description of the payment. <br>Applies to card payments only.|
|city|string|true|none|The city from which the payment originated. <br>Applies to card payments only.|
|reference|string|false|none|The reference that should be shown on the statement. <br>Required for payouts to bank accounts.|
|local_descriptors|[[LocalBillingDescriptor](#schemalocalbillingdescriptor)]¦null|false|none|[An optional description that is displayed on the customer's statement identifying a purchase, in the specified local character set. <br><br>This does not override the value supplied in `BillingDescriptor`.<br>]|

<h2 id="tocS_CancellationAcceptedResponse">CancellationAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemacancellationacceptedresponse"></a>
<a id="schema_CancellationAcceptedResponse"></a>
<a id="tocScancellationacceptedresponse"></a>
<a id="tocscancellationacceptedresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "reference": "ORD-5023-4E89",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

Cancellation response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the cancellation action.|
|reference|string|false|none|Your reference for the cancellation request.|
|_links|object|false|read-only|The links related to the cancellation.|
|» payment|[Link](#schemalink)|true|none|The URI of the payment to be canceled. Use this to check the status of the payment.|

<h2 id="tocS_CancellationRequest">CancellationRequest</h2>
<!-- backwards compatibility -->
<a id="schemacancellationrequest"></a>
<a id="schema_CancellationRequest"></a>
<a id="tocScancellationrequest"></a>
<a id="tocscancellationrequest"></a>

```json
{
  "reference": "ORD-5023-4E89"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|false|none|A reference you can later use to identify this cancellation request. You can use this value to identify the cancellation request later.|

<h2 id="tocS_CaptureAcceptedResponse">CaptureAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemacaptureacceptedresponse"></a>
<a id="schema_CaptureAcceptedResponse"></a>
<a id="tocScaptureacceptedresponse"></a>
<a id="tocscaptureacceptedresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "reference": "ORD-5023-4E89",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "redirect": {
      "href": "https://{prefix}.api.checkout.com/redirect/act_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

Capture response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the capture action|
|reference|string|false|none|Your reference for the capture request|
|_links|object|false|read-only|The links related to the capture|
|» payment|[Link](#schemalink)|true|none|The URI of the payment to be captured. Use this to check the status of the payment|
|» redirect|[Link](#schemalink)|false|none|For some alternative payments, the URI that the customer should be redirected to to complete the capture|

<h2 id="tocS_CaptureRequest">CaptureRequest</h2>
<!-- backwards compatibility -->
<a id="schemacapturerequest"></a>
<a id="schema_CaptureRequest"></a>
<a id="tocScapturerequest"></a>
<a id="tocscapturerequest"></a>

```json
{
  "amount": 6540,
  "capture_type": "Final",
  "reference": "ORD-5023-4E89",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "tax_number": "1350693505279",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "description": "Set of 3 masks",
  "billing_descriptor": {
    "name": "SUPERHEROES.COM",
    "city": "GOTHAM",
    "reference": "string",
    "local_descriptors": [
      {
        "name": "漢字",
        "character_set": "kanji"
      }
    ]
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "10014",
    "tracking_info": [
      {
        "return_shipping_company": "DHL US",
        "return_tracking_number": "GM275322484009027685",
        "return_tracking_uri": "https://example.com/tracking/GM275322484009027685",
        "shipping_company": "DHL US",
        "tracking_number": "GM275322484009027685",
        "tracking_uri": "https://example.com/tracking/GM275322484009027685"
      }
    ]
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "processing": {
    "order_id": "123456789",
    "otp_value": "966557877988",
    "tax_amount": 3000,
    "surcharge_amount": 200,
    "discount_amount": 0,
    "duty_amount": 0,
    "shipping_amount": 300,
    "shipping_tax_amount": 100,
    "purchase_country": "GB",
    "foreign_retailer_amount": 20000
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer(int64)|false|none|The amount to capture. If not specified, the full payment amount will be captured.|
|capture_type|string|false|none|The type of capture. If set to `Final`, the remaining available-to-capture balance will be voided.|
|reference|string|false|none|A reference you can later use to identify this capture request.<br>For Amex, the string limit is 30 characters.|
|customer|[CustomerRequest](#schemacustomerrequest)|false|none|The customer's details. Required if `source.type` is `tamara`|
|description|string|false|none|A description of the payment.|
|billing_descriptor|[BillingDescriptor](#schemabillingdescriptor)|false|none|An optional description that is displayed on the customer's statement identifying a purchase.|
|shipping|object|false|none|The shipping details.|
|» address|[Address](#schemaaddress)|false|none|The shipping address.|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number associated with the shipping address.|
|» from_address_zip|string|false|none|The postal code or zip code of the location being shipped from.|
|» tracking_info|[[TrackingInfo](#schematrackinginfo)]|false|none|The tracking information for the payment capture.|
|items|[Items](#schemaitems)|false|none|The order's line items.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|processing|[CaptureRequestProcessingSettings](#schemacapturerequestprocessingsettings)|false|none|Use the processing object to influence or override the data sent during card processing|
|metadata|object|false|none|A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. <br><br>The `metadata` object only supports primitive data types. Objects and arrays are not supported.|

#### Enumerated Values

|Property|Value|
|---|---|
|capture_type|NonFinal|
|capture_type|Final|

<h2 id="tocS_CaptureRequestProcessingSettings">CaptureRequestProcessingSettings</h2>
<!-- backwards compatibility -->
<a id="schemacapturerequestprocessingsettings"></a>
<a id="schema_CaptureRequestProcessingSettings"></a>
<a id="tocScapturerequestprocessingsettings"></a>
<a id="tocscapturerequestprocessingsettings"></a>

```json
{
  "order_id": "123456789",
  "otp_value": "966557877988",
  "tax_amount": 3000,
  "surcharge_amount": 200,
  "discount_amount": 0,
  "duty_amount": 0,
  "shipping_amount": 300,
  "shipping_tax_amount": 100,
  "purchase_country": "GB",
  "foreign_retailer_amount": 20000
}

```

Use the processing object to influence or override the data sent during card processing

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|order_id|string|false|none|The number provided by the cardholder. Purchase order or invoice number may be used.|
|otp_value|string|false|none|One time password sent to customer by SMS.|
|tax_amount|number|false|none|The total amount of sales tax on the total purchase amount.|
|surcharge_amount|integer(int64)|false|none|Surcharge amount applied to the partial capture transaction in minor units by the merchant|
|discount_amount|number|false|none|The discount amount applied to the transaction by the merchant.|
|duty_amount|number|false|none|The total charges for any import/export duty included in the transaction.|
|shipping_amount|number|false|none|The total freight or shipping and handling charges for the transaction.|
|shipping_tax_amount|number|false|none|The tax amount of the freight or shipping and handling charges for the transaction.|
|purchase_country|string|false|none|The country where the goods are purchased or the seller is based. ISO 3166 alpha-2 purchase country code.|
|foreign_retailer_amount|integer|false|none|The amount of the transaction that originates from a foreign retailer,  in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value).|

<h2 id="tocS_CustomerSummary">CustomerSummary</h2>
<!-- backwards compatibility -->
<a id="schemacustomersummary"></a>
<a id="schema_CustomerSummary"></a>
<a id="tocScustomersummary"></a>
<a id="tocscustomersummary"></a>

```json
{
  "registration_date": "2023-05-01",
  "first_transaction_date": "2023-07-01",
  "last_payment_date": "2023-08-01",
  "total_order_count": 15,
  "last_payment_amount": 500,
  "is_premium_customer": true,
  "is_returning_customer": true,
  "lifetime_value": 500
}

```

Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|registration_date|string(date)|false|none|The date the customer registered.|
|first_transaction_date|string(date)|false|none|The date of the customer's first transaction.|
|last_payment_date|string(date)|false|none|The date of the customer's last payment.|
|total_order_count|integer|false|none|The total number of orders made by the customer.|
|last_payment_amount|number(float)|false|none|The amount of the customer's last payment.|
|is_premium_customer|boolean|false|none|Specifies whether the customer is a premium customer.|
|is_returning_customer|boolean|false|none|Specifies whether the customer is a returning customer.|
|lifetime_value|number(float)|false|none|The customer's lifetime value. This is the total monetary amount that the customer has ordered, in their local currency, excluding the following:<br>   <br>- canceled orders<br>- rejected payments<br>- refunded payments<br>- Tamara payments<br><br>The lifetime value is an indicator of how valuable the relationship with the customer is to your company.|

<h2 id="tocS_DeviceDetails">DeviceDetails</h2>
<!-- backwards compatibility -->
<a id="schemadevicedetails"></a>
<a id="schema_DeviceDetails"></a>
<a id="tocSdevicedetails"></a>
<a id="tocsdevicedetails"></a>

```json
{
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
  "network": {
    "ipv4": "63.33.82.13",
    "ipv6": "2001:0000:130F:0000:0000:09C0:876A:130B",
    "tor": false,
    "vpn": false,
    "proxy": false
  },
  "provider": {
    "id": "1728646225211.AfUgxG",
    "name": "List [ \"merchant\", \"fingerprintjs\", \"riskify\" ]"
  },
  "timestamp": "2024-02-06T15:00:00.000Z",
  "timezone": "60",
  "virtual_machine": false,
  "incognito": false,
  "jailbroken": false,
  "rooted": false,
  "java_enabled": false,
  "javascript_enabled": false,
  "language": "FR-fr",
  "color_depth": "16",
  "screen_height": "1080",
  "screen_width": "1920",
  "user_agent_client_hint": "string",
  "iframe_payment_allowed": true,
  "accept_header": "string"
}

```

Details of the device from which the payment originated.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|user_agent|string|false|none|The contents of the HTTP User-Agent request header.<br><br>This field is required to process the device with the risk engine.|
|network|[Network](#schemanetwork)|false|none|Details of the device network. <br><br>Either ipv4 or ipv6 is required field.|
|provider|[DeviceProvider](#schemadeviceprovider)|false|none|Details of the device ID provider.|
|timestamp|string|false|none|The UTC date and time the payment was performed as reported by the device.<br><br/>Format – ISO 8601 code<br><br>This field is required to process the device with the risk engine.|
|timezone|string|false|none|The time difference between UTC time and the local time reported by the browser, in minutes. <br><br>This field is required to process the device with the risk engine.|
|virtual_machine|boolean|false|none|Specifies if the device is running in a virtual machine.|
|incognito|boolean|false|none|Specifies if the browser is in incognito mode.|
|jailbroken|boolean|false|none|Specifies if the device is jailbroken.|
|rooted|boolean|false|none|Specifies if the device is rooted.|
|java_enabled|boolean|false|none|Specifies if the browser has the ability to execute Java, as reported by the browser's `navigator.javaEnabled` property.|
|javascript_enabled|boolean|false|none|Specifies if the browser has the ability to execute Javascript, as reported by the browser's `navigator.javascriptEnabled` property.<br><br>Only required for 3D Secure authentications processed with 3DS 2.2. If the payment is processed with an older 3DS version, this field is ignored.|
|language|string|false|none|The browser language, as reported by the browser's `navigator.language` property.<br><br/>Format – IETF BCP47 language tag|
|color_depth|string|false|none|The bit depth of the color palette for displaying images in bits per pixel, as reported by the browser's `screen.colorDepth` property.|
|screen_height|string|false|none|The total height of the device screen in pixels, as reported by the browser's `screen.height` property.|
|screen_width|string|false|none|The total width of the device screen in pixels, as reported by the browser's `screen.width` property.|
|user_agent_client_hint|string|false|none|The raw `Sec-CH-UA` header value. This field improves Google Single-Page Application (SPA) support, as it provides more accurate information about the customer's browser.|
|iframe_payment_allowed|boolean|false|none|Indicates whether the Payments API is enabled for all parent frames.|
|accept_header|string|false|none|The exact content of the HTTP `Accept` headers as sent to the 3DS Requestor from the cardholder’s browser.|

<h2 id="tocS_DeviceProvider">DeviceProvider</h2>
<!-- backwards compatibility -->
<a id="schemadeviceprovider"></a>
<a id="schema_DeviceProvider"></a>
<a id="tocSdeviceprovider"></a>
<a id="tocsdeviceprovider"></a>

```json
{
  "id": "1728646225211.AfUgxG",
  "name": "List [ \"merchant\", \"fingerprintjs\", \"riskify\" ]"
}

```

Details of the device ID provider.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier for the device.|
|name|string|false|none|The name of the provider that generated the device identifier.|

<h2 id="tocS_DowntimeRetryRequest">DowntimeRetryRequest</h2>
<!-- backwards compatibility -->
<a id="schemadowntimeretryrequest"></a>
<a id="schema_DowntimeRetryRequest"></a>
<a id="tocSdowntimeretryrequest"></a>
<a id="tocsdowntimeretryrequest"></a>

```json
{
  "enabled": true
}

```

Configuration of Downtime retries.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Indicates if Checkout.com retries the payment when it's declined due to issuer or acquirer downtime.|

<h2 id="tocS_DunningRetryRequest">DunningRetryRequest</h2>
<!-- backwards compatibility -->
<a id="schemadunningretryrequest"></a>
<a id="schema_DunningRetryRequest"></a>
<a id="tocSdunningretryrequest"></a>
<a id="tocsdunningretryrequest"></a>

```json
{
  "enabled": true,
  "max_attempts": 6,
  "end_after_days": 30
}

```

Configuration of Dunning retries.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Indicates if Checkout.com retries the payment when it's declined with a supported decline code.|
|max_attempts|integer|false|none|The maximum number of authorization retry attempts, excluding the initial authorization.|
|end_after_days|integer|false|none|The maximum number of days between the initial request and the final retry attempt.|

<h2 id="tocS_PaymentGetResponseAlmaSource">PaymentGetResponseAlmaSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsealmasource"></a>
<a id="schema_PaymentGetResponseAlmaSource"></a>
<a id="tocSpaymentgetresponsealmasource"></a>
<a id="tocspaymentgetresponsealmasource"></a>

```json
{
  "type": "alma"
}

```

alma

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|alma|

<h2 id="tocS_PaymentGetResponseBacsSource">PaymentGetResponseBacsSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsebacssource"></a>
<a id="schema_PaymentGetResponseBacsSource"></a>
<a id="tocSpaymentgetresponsebacssource"></a>
<a id="tocspaymentgetresponsebacssource"></a>

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The instrument ID|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bacs|

<h2 id="tocS_PaymentGetResponseBancontactSource">PaymentGetResponseBancontactSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsebancontactsource"></a>
<a id="schema_PaymentGetResponseBancontactSource"></a>
<a id="tocSpaymentgetresponsebancontactsource"></a>
<a id="tocspaymentgetresponsebancontactsource"></a>

```json
{
  "type": "bancontact",
  "iban": "string",
  "bic": "string"
}

```

bancontact

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|iban|string|false|none|The IBAN of the Consumer Bank account used for payment (if applicable).|
|bic|string|false|none|The Bank Code of the Consumer Bank account used for payment (if applicable). Example: BIC, Sort Code.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bancontact|

<h2 id="tocS_PaymentGetResponseBlikSource">PaymentGetResponseBlikSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsebliksource"></a>
<a id="schema_PaymentGetResponseBlikSource"></a>
<a id="tocSpaymentgetresponsebliksource"></a>
<a id="tocspaymentgetresponsebliksource"></a>

```json
{
  "type": "blik",
  "id": "src_iz65kt6uiq4enbm6wkjqssehsm"
}

```

blik

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The Checkout.com source identifier for the partner agreement created during a Blik recurring payment.<br><br>Use this value as `source.id` (with `source.type: id`) to process subsequent merchant-initiated payments against the same agreement.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|blik|

<h2 id="tocS_PaymentGetResponseCardSource">PaymentGetResponseCardSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsecardsource"></a>
<a id="schema_PaymentGetResponseCardSource"></a>
<a id="tocSpaymentgetresponsecardsource"></a>
<a id="tocspaymentgetresponsecardsource"></a>

```json
{
  "type": "card",
  "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "scheme": "VISA",
  "scheme_local": "Cartes_Bancaires",
  "local_schemes": [
    "cartes_bancaires",
    "visa"
  ],
  "last4": "9996",
  "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
  "bin": "45434748",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "card_wallet_type": "applepay",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "avs_check": "S",
  "cvv_check": "Y",
  "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
  "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
  "account_update_status": "card_updated",
  "account_update_failure_code": "VAU009",
  "account_holder": {}
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The payment source identifier that can be used for subsequent payments. For new sources, this will only be returned if the payment was approved|
|billing_address|[Address](#schemaaddress)|false|none|The payment source owner's billing address|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The payment source owner's phone number|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|The expiry year|
|name|string|false|none|The cardholder's name|
|scheme|string|false|none|The card scheme|
|scheme_local|string|false|none|Replaced by `local_schemes`<br>The local co-branded card scheme.|
|local_schemes|[string]|false|none|The local co-branded card schemes.|
|last4|string|true|none|The last four digits of the card number|
|fingerprint|string|true|none|Uniquely identifies this particular card number. You can use this to compare cards across customers.|
|bin|string|true|none|The card issuer's Bank Identification Number (BIN)|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|card_wallet_type|string|false|none|The card wallet type|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">two-letter ISO code</a>)|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|avs_check|string|false|none|The Address Verification System check result|
|cvv_check|string|false|none|The card verification value (CVV) check result|
|payment_account_reference|string|false|none|A unique reference to the underlying card for network tokens (e.g., Apple Pay, Google Pay)|
|encrypted_card_number|string|false|none|The JWE encrypted full card number that has been updated by <a href="https://www.checkout.com/docs/payments/manage-payments/real-time-account-updater" target="_blank">real-time account updater</a>.|
|account_update_status|string|false|none|Specifies what card information was updated by the <a href="https://www.checkout.com/docs/payments/manage-payments/real-time-account-updater#Retrieve_card_updates" target="_blank">Real-Time Account Updater</a>.|
|account_update_failure_code|string|false|none|Provides the <a href="https://www.checkout.com/docs/developer-resources/codes/real-time-account-updater-response-codes" target="_blank">failure code</a> if the <a href="https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/real-time-account-updater" target="_blank">Real-Time Account Updater</a> fails to update the card information.|
|account_holder|object|false|none|Information about the account holder of the card|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|card_wallet_type|applepay|
|card_wallet_type|googlepay|
|account_update_status|card_updated|
|account_update_status|card_expiry_updated|
|account_update_status|card_closed|
|account_update_status|contact_cardholder|

<h2 id="tocS_PaymentGetResponseCurrencyAccountSource">PaymentGetResponseCurrencyAccountSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsecurrencyaccountsource"></a>
<a id="schema_PaymentGetResponseCurrencyAccountSource"></a>
<a id="tocSpaymentgetresponsecurrencyaccountsource"></a>
<a id="tocspaymentgetresponsecurrencyaccountsource"></a>

```json
{
  "type": "currency_account",
  "id": "string",
  "amount": 0
}

```

currency_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The ID of the currency account|
|amount|integer|false|none|If specified, indicates the amount in the source currency to be paid out. If omitted, the root amount in the destination currency will be used.<br>The amount must be provided in the minor currency unit.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|currency_account|

<h2 id="tocS_PaymentGetResponseEPSSource">PaymentGetResponseEPSSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponseepssource"></a>
<a id="schema_PaymentGetResponseEPSSource"></a>
<a id="tocSpaymentgetresponseepssource"></a>
<a id="tocspaymentgetresponseepssource"></a>

```json
{
  "type": "eps",
  "purpose": "string",
  "bic": "string",
  "iban": "string",
  "account_holder_name": "string",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith"
  }
}

```

eps

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|purpose|string|false|none|Purpose of the payment as appearing on customer's bank statement.|
|bic|string|false|none|Bank Identifier Code (BIC). It can be exactly 8 characters or 11 characters long.|
|iban|string|false|none|International Bank Account Number (IBAN) without whitespaces.|
|account_holder_name|string|false|none|Account holder information.|
|account_holder|[AccountHolderEps](#schemaaccountholdereps)|false|none|The account holder details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|eps|

<h2 id="tocS_PaymentGetResponseIdealSource">PaymentGetResponseIdealSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponseidealsource"></a>
<a id="schema_PaymentGetResponseIdealSource"></a>
<a id="tocSpaymentgetresponseidealsource"></a>
<a id="tocspaymentgetresponseidealsource"></a>

```json
{
  "type": "ideal",
  "account_holder": "M.P.H. Nordhausen",
  "account_holder_name": "M.P.H. Nordhausen",
  "bic": "RABONL2U",
  "description": "MEXC 18652552",
  "iban": "NL73RABO0117816396"
}

```

ideal

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_holder|string|false|none|The account holder information|
|account_holder_name|string|false|none|The account holder's name|
|bic|string|false|none|Bank Identifier Code (BIC). It can be exactly 8 characters or 11 characters long|
|description|string|false|none|Description of the product(s) or services being paid for|
|iban|string|false|none|The IBAN of the Consumer Bank account used for payment (if applicable).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|ideal|

<h2 id="tocS_PaymentGetResponseKlarnaSource">PaymentGetResponseKlarnaSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponseklarnasource"></a>
<a id="schema_PaymentGetResponseKlarnaSource"></a>
<a id="tocSpaymentgetresponseklarnasource"></a>
<a id="tocspaymentgetresponseklarnasource"></a>

```json
{
  "type": "klarna",
  "account_holder": {
    "first_name": "Hannah",
    "last_name": "Bret",
    "billing_address": {
      "address_line1": "123 Example St.",
      "address_line2": "Apt. 456",
      "city": "Berlin",
      "zip": "10115",
      "country": "DE"
    },
    "email": "string",
    "date_of_birth": "string",
    "account_holder_name": "string",
    "iban": "string",
    "account_number": "string",
    "bank_code": "string",
    "bank_name": "string",
    "bic": "string",
    "gender": "string",
    "phone": {
      "country_code": "44",
      "number": "1234 567890"
    }
  }
}

```

klarna

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_holder|object|false|none|The account holder's details.|
|» first_name|string|false|none|The account holder's first name.|
|» last_name|string|false|none|The account holder's last name.|
|» billing_address|object|false|none|The account holder's billing address.|
|»» address_line1|string|false|none|The first line of the billing address.|
|»» address_line2|string|false|none|The second line of the billing address.|
|»» city|string|true|none|The billing address city.|
|»» zip|string|true|none|The billing address ZIP or postal code.|
|»» country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="blank">ISO country code</a> of the billing address.|
|» email|string|false|none|The account holder's email address.|
|» date_of_birth|string|false|none|The account holder's date of birth.|
|» account_holder_name|string|false|none|The account holder's full name.|
|» iban|string|false|none|The account's international bank account number (IBAN). The IBAN is a standardized international format for identifying bank accounts across countries.|
|» account_number|string|false|none|The account holder's account number.|
|» bank_code|string|false|none|A unique code that identifies the bank the account is held with.|
|» bank_name|string|false|none|The name of the bank the account is held with.|
|» bic|string|false|none|The account's bank identifier code (BIC). A BIC is a standardized international code used by banks to identify themselves in financial transactions. <br><br>Also referred to as a SWIFT code.|
|» gender|string|false|none|The account holder's gender.|
|» phone|object|false|none|The account holder's phone number.|
|»» country_code|string|false|none|The international <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">country calling code</a>.|
|»» number|string|false|none|The phone number.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|klarna|

<h2 id="tocS_PaymentGetResponseKnetSource">PaymentGetResponseKnetSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponseknetsource"></a>
<a id="schema_PaymentGetResponseKnetSource"></a>
<a id="tocSpaymentgetresponseknetsource"></a>
<a id="tocspaymentgetresponseknetsource"></a>

```json
{
  "type": "knet",
  "language": "ar",
  "user_defined_field1": "string",
  "user_defined_field2": "string",
  "user_defined_field3": "string",
  "user_defined_field4": "string",
  "user_defined_field5": "string",
  "card_token": "string",
  "ptlf": "string",
  "knet_payment_id": "string",
  "knet_result": "string",
  "inquiry_result": "string",
  "bank_reference": "123456789012",
  "knet_transaction_id": "1234567890123456",
  "auth_code": "999554",
  "auth_response_code": "5",
  "post_date": "1127",
  "avr": "A",
  "error": "IPAY0100044",
  "error_text": "IPAY0100044-Problem occured while loading payment page."
}

```

knet

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|language|string|false|none|Required for KNet Gateway payments.<br>This field enables the issuer's site to select the consumer's preferred language. For example, the language selected on the merchant's site – if the issuer's site supports it. Code list in accordance with ISO 639-1. (Arabic = 'ar', English = 'en'). Note that 'ar' corresponds to 'ARA' and 'en' to 'USA'. Both values accepted by KNet Gateway.|
|user_defined_field1|string|false|none|User-defined field that can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed.|
|user_defined_field2|string|false|none|User-defined field can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed.|
|user_defined_field3|string|false|none|User-defined field can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed. Note that this field must be omitted when the `card_token` field is not empty. This restriction exists because a card token is passed to KNet Gateway as `user_defined_field3`.|
|user_defined_field4|string|false|none|User-defined field can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed.|
|user_defined_field5|string|false|none|User-defined field can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed. Note that this field must be omitted when the `ptlf` field is not empty. This restriction exists because a PTLF value is passed to KNet Gateway as `user_defined_field5`.|
|card_token|string|false|none|This token allows re-usage of card details for multiple payments. This 8-digit token should be generated by a merchant. When a subsequent payment is initialized with the same card token, a customer is presented with two options. The customer can choose to pay with KFast (doesn't need to enter card details again), or with KNet as usual. The payment flow stays the same i.e. a merchant should redirect a customer to the redirect URL which is provided in the payment creation response. Note that `user_defined_field3` must be omitted when the `card_token` field is not empty. This restriction exists because a card token is passed to KNet Gateway as `user_defined_field3`.|
|ptlf|string|false|none|This is an ID for merchant PTLF functionality tracking. Only alphanumeric characters are allowed. Note that `user_defined_field5` must be omitted when the `ptlf` field is not empty. This restriction exists because a PTLF value is passed to KNet Gateway as `user_defined_field5`.|
|knet_payment_id|string|false|none|The payment identifier assigned by KNet Gateway.|
|knet_result|string|false|none|The state of the payment, returned by KNet Gateway after the customer is redirected from the payment page.|
|inquiry_result|string|false|none|The state of the payment, returned by KNet Gateway in the response from the payment inquiry. This field is populated in rare cases when the redirection from the payment page did not occur properly.|
|bank_reference|string|false|none|The result transaction reference, given by some banks/institutions.|
|knet_transaction_id|string|false|none|The transaction identifier assigned by KNet Gateway.|
|auth_code|string|false|none|The resulting authorization code from the issuing bank.|
|auth_response_code|string|false|none|The auth response code / reason code relating to the issuing bank authorization code.|
|post_date|string|false|none|The transaction date in the authorization system format, with the value defined by the issuing bank, so may not match the actual transaction date. The format is `MMDD`.|
|avr|string|false|none|The Address Verification Response returned from the address verification service.|
|error|string|false|none|The KNET error code for transaction processing.|
|error_text|string|false|none|The KNET text detail for the error, including an error code.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|knet|
|language|ar|
|language|en|

<h2 id="tocS_PaymentGetResponseMultibancoSource">PaymentGetResponseMultibancoSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsemultibancosource"></a>
<a id="schema_PaymentGetResponseMultibancoSource"></a>
<a id="tocSpaymentgetresponsemultibancosource"></a>
<a id="tocspaymentgetresponsemultibancosource"></a>

```json
{
  "type": "multibanco",
  "payment_reference": "string",
  "service_supplier_id": "string"
}

```

multibanco

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_reference|string|false|none|Multibanco payment reference|
|service_supplier_id|string|false|none|The identifier of a supplier charging for its service or product|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|multibanco|

<h2 id="tocS_PaymentGetResponseP24Source">PaymentGetResponseP24Source</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsep24source"></a>
<a id="schema_PaymentGetResponseP24Source"></a>
<a id="tocSpaymentgetresponsep24source"></a>
<a id="tocspaymentgetresponsep24source"></a>

```json
{
  "type": "p24",
  "p24_descriptor": "string"
}

```

p24

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|p24_descriptor|string|false|none|P24-generated payment descriptor, which contains the requested billing descriptor or the merchant's default descriptor (subject to truncation).|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|p24|

<h2 id="tocS_PaymentGetResponsePayPalSource">PaymentGetResponsePayPalSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsepaypalsource"></a>
<a id="schema_PaymentGetResponsePayPalSource"></a>
<a id="tocSpaymentgetresponsepaypalsource"></a>
<a id="tocspaymentgetresponsepaypalsource"></a>

```json
{
  "type": "paypal",
  "account_holder": {
    "email": "user@example.com",
    "full_name": "John Smith"
  }
}

```

paypal

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_holder|object|false|none|The account holder details|
|» email|string(email)|false|none|The account holder email address.|
|» full_name|string|false|none|The full name of the account holder|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|paypal|

<h2 id="tocS_PaymentGetResponseQPaySource">PaymentGetResponseQPaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponseqpaysource"></a>
<a id="schema_PaymentGetResponseQPaySource"></a>
<a id="tocSpaymentgetresponseqpaysource"></a>
<a id="tocspaymentgetresponseqpaysource"></a>

```json
{
  "type": "qpay",
  "description": "string",
  "qpay_status": "string",
  "status_message": "string",
  "confirmation_id": "string",
  "pun": "string"
}

```

qpay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|true|none|Alphanumeric string containing a description of the payment order.|
|qpay_status|string|false|none|The status code returned from the QPay gateway on payment, if available.|
|status_message|string|false|none|A message giving further detail on the payment status, for failure/cancelled/success status payments.|
|confirmation_id|string|false|none|An identifier from the QPay gateway for a successful payment.|
|pun|string|true|none|QPay Payment Unique Number|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|qpay|

<h2 id="tocS_PaymentGetResponseSEPAV4Source">PaymentGetResponseSEPAV4Source</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsesepav4source"></a>
<a id="schema_PaymentGetResponseSEPAV4Source"></a>
<a id="tocSpaymentgetresponsesepav4source"></a>
<a id="tocspaymentgetresponsesepav4source"></a>

```json
{
  "type": "sepa",
  "id": "src_q2euotsbrciupfgmwxkyzuoevq"
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The instrument ID|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|sepa|

<h2 id="tocS_PaymentGetResponseSequraSource">PaymentGetResponseSequraSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsesequrasource"></a>
<a id="schema_PaymentGetResponseSequraSource"></a>
<a id="tocSpaymentgetresponsesequrasource"></a>
<a id="tocspaymentgetresponsesequrasource"></a>

```json
{
  "type": "sequra"
}

```

sequra

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|sequra|

<h2 id="tocS_PaymentGetResponseSwishSource">PaymentGetResponseSwishSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponseswishsource"></a>
<a id="schema_PaymentGetResponseSwishSource"></a>
<a id="tocSpaymentgetresponseswishsource"></a>
<a id="tocspaymentgetresponseswishsource"></a>

```json
{
  "type": "swish"
}

```

swish

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|swish|

<h2 id="tocS_PaymentGetResponseTamaraSource">PaymentGetResponseTamaraSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentgetresponsetamarasource"></a>
<a id="schema_PaymentGetResponseTamaraSource"></a>
<a id="tocSpaymentgetresponsetamarasource"></a>
<a id="tocspaymentgetresponsetamarasource"></a>

```json
{
  "type": "tamara"
}

```

tamara

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentDetailsResponseSourceType](#schemapaymentdetailsresponsesourcetype)|false|none|Ordered list of payment details response source types|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|tamara|

<h2 id="tocS_IdempotentActionResponse">IdempotentActionResponse</h2>
<!-- backwards compatibility -->
<a id="schemaidempotentactionresponse"></a>
<a id="schema_IdempotentActionResponse"></a>
<a id="tocSidempotentactionresponse"></a>
<a id="tocsidempotentactionresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

The response received when you attempt a repeated payment action. For example, if you attempt to refund a payment that is already refunded.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the previously completed payment action.|
|_links|object|false|read-only|Links related to the payment.|
|» payment|[Link](#schemalink)|true|none|The URI of the refunded payment. Use this to check the status of the payment.|

<h2 id="tocS_InitialAuthentication">InitialAuthentication</h2>
<!-- backwards compatibility -->
<a id="schemainitialauthentication"></a>
<a id="schema_InitialAuthentication"></a>
<a id="tocSinitialauthentication"></a>
<a id="tocsinitialauthentication"></a>

```json
{
  "acs_transaction_id": "stringstringstringstringstringstring",
  "authentication_method": "frictionless_authentication",
  "authentication_timestamp": "2023-02-06T15:00:00.000Z",
  "authentication_data": "string",
  "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
}

```

InitialAuthentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|acs_transaction_id|string|false|none|The Access Control Server (ACS) transaction ID for a previously authenticated transaction|
|authentication_method|string|false|none|none|
|authentication_timestamp|string|false|none|The timestamp of the previous authentication, in ISO 8601 format.|
|authentication_data|string|false|none|The data that documents and supports a specific authentication process|
|initial_session_id|string|false|none|The ID for a previous session, which is used for retrieve the initial transaction's properties|

#### Enumerated Values

|Property|Value|
|---|---|
|authentication_method|frictionless_authentication|
|authentication_method|challenge_occurred|
|authentication_method|avs_verified|
|authentication_method|other_issuer_methods|

<h2 id="tocS_Items">Items</h2>
<!-- backwards compatibility -->
<a id="schemaitems"></a>
<a id="schema_Items"></a>
<a id="tocSitems"></a>
<a id="tocsitems"></a>

```json
[
  {
    "type": "digital",
    "sub_type": "stablecoin",
    "name": "Necklace",
    "quantity": 2,
    "unit_price": 50,
    "reference": "858818ac",
    "commodity_code": "DEF123",
    "unit_of_measure": "metres",
    "total_amount": 29000,
    "tax_rate": 2000,
    "tax_amount": 1000,
    "tax_exempt": true,
    "discount_amount": 1000,
    "wxpay_goods_id": "1001",
    "url": "string",
    "image_url": "string",
    "service_ends_on": "2025-01-01",
    "purchase_country": "GB",
    "foreign_retailer_amount": 200
  }
]

```

The order's line items.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The item type. For example, `physical` or `digital`.<br><br>This field is used to provide item level metadata where applicable. If `source.type` is `sequra`, this field is required.|
|sub_type|string|false|none|The digital item type.<br><br>If `type` is set to `digital`, this field is required.|
|name|string|false|none|The descriptive name of the line item. <br><br>If `source.type` is `sequra`, this field is required.|
|quantity|integer|false|none|The number of line items.<br><br>If `source.type` is `sequra`, this field is required.|
|unit_price|integer|false|none|The unit price of the item the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>. Required if `source.type` is `sequra`|
|reference|string|false|none|The item reference or product SKU (stock-keeping unit).<br><br>For Visa and Mastercard's interchange reduction programs, this value has a maximum length of 12 characters.<br><br>If `source.type` is `sequra`, this field is required.|
|commodity_code|string|false|none|A code identifying a Commodity for value-added tax (VAT) purposes.|
|unit_of_measure|string|false|none|Unit of Measure code used for an item in transaction.|
|total_amount|number|false|none|The total cost of the line item, in <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="_blank">minor currency units</a>. Calculate this using the following formula:<br><br>`total_amount` = (`quantity` * `unit_price`) - `discount_amount`.<br><br>If `source.type` is `sequra`, this field is required.|
|tax_rate|number|false|none|The tax rate of the item line in minor units. The percentage value is represented with two implicit decimals. For example, 2000=20%.|
|tax_amount|number|false|none|Contains the total amount of sales tax or value-added tax (VAT) on the total purchase amount. Tax should be included in the total purchase.|
|tax_exempt|boolean|false|none|Indicates whether the products or services are tax-exempt. <p/><br><br>Set to `true` if:<br>  - You are processing a card payment.<br>  - The `tax_amount` field is `0` due to a tax-exempt product or service.|
|discount_amount|number|false|none|The discount applied to each invoice line item.|
|wxpay_goods_id|string|false|none|Unified product No. defined by WeChat Pay|
|url|string|false|none|Link to the line item's product page|
|image_url|string|false|none|Link to the line item's product page|
|service_ends_on|string(date)|false|none|Maximum date for the service to be rendered or ended. <br><br>If `source.type` is `sequra` and `item.type` is `digital`, this field is required.|
|purchase_country|string|false|none|The country where the purchase was made. <br/>Format – <a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="_blank">ISO alpha-2 country code</a>|
|foreign_retailer_amount|integer|false|none|The foreign retailer amount the merchant applied to the transaction, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value).|

#### Enumerated Values

|Property|Value|
|---|---|
|type|digital|
|type|discount|
|type|physical|
|sub_type|blockchain|
|sub_type|cbdc|
|sub_type|cryptocurrency|
|sub_type|nft|
|sub_type|stablecoin|

<h2 id="tocS_LocalBillingDescriptor">LocalBillingDescriptor</h2>
<!-- backwards compatibility -->
<a id="schemalocalbillingdescriptor"></a>
<a id="schema_LocalBillingDescriptor"></a>
<a id="tocSlocalbillingdescriptor"></a>
<a id="tocslocalbillingdescriptor"></a>

```json
{
  "name": "漢字",
  "character_set": "kanji"
}

```

An optional description that is displayed on the customer's statement identifying a purchase, in the specified local character set. 

This does not override the value supplied in `BillingDescriptor`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|A dynamic description of the card payment. Other payment methods will not display this description.<br><br>The character set specified will determine the maximum length of the field. For `katakana`, the maximum length is 23 characters, equivalent to 23 katakana characters. For `kanji`, the maximum length is 40 characters, equivalent to 20 kanji characters.|
|character_set|any|true|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[LocalCharacterSets](#schemalocalcharactersets)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|any|false|none|The character set of the descriptor|

<h2 id="tocS_LocalCharacterSets">LocalCharacterSets</h2>
<!-- backwards compatibility -->
<a id="schemalocalcharactersets"></a>
<a id="schema_LocalCharacterSets"></a>
<a id="tocSlocalcharactersets"></a>
<a id="tocslocalcharactersets"></a>

```json
"kanji"

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|kanji|
|*anonymous*|katakana|

<h2 id="tocS_MerchantAuthenticationInfo">MerchantAuthenticationInfo</h2>
<!-- backwards compatibility -->
<a id="schemamerchantauthenticationinfo"></a>
<a id="schema_MerchantAuthenticationInfo"></a>
<a id="tocSmerchantauthenticationinfo"></a>
<a id="tocsmerchantauthenticationinfo"></a>

```json
{
  "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
  "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
  "three_ds_req_auth_data": "string"
}

```

MerchantAuthenticationInfo

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|three_ds_req_auth_method|string|false|none|The mechanism used by the cardholder to authenticate with the 3DS Requestor|
|three_ds_req_auth_timestamp|string(date-time)|false|none|The UTC date and time the cardholder authenticated with the 3DS Requestor, in ISO 8601 format.|
|three_ds_req_auth_data|string|false|none|The data that documents and supports a specific authentication process|

#### Enumerated Values

|Property|Value|
|---|---|
|three_ds_req_auth_method|no_threeds_requestor_authentication_occurred|
|three_ds_req_auth_method|three3ds_requestor_own_credentials|
|three_ds_req_auth_method|federated_id|
|three_ds_req_auth_method|issuer_credentials|
|three_ds_req_auth_method|third_party_authentication|
|three_ds_req_auth_method|fido_authenticator|
|three_ds_req_auth_method|fido_authenticator_fido_assurance_data_signed|
|three_ds_req_auth_method|src_assurance_data|

<h2 id="tocS_Network">Network</h2>
<!-- backwards compatibility -->
<a id="schemanetwork"></a>
<a id="schema_Network"></a>
<a id="tocSnetwork"></a>
<a id="tocsnetwork"></a>

```json
{
  "ipv4": "63.33.82.13",
  "ipv6": "2001:0000:130F:0000:0000:09C0:876A:130B",
  "tor": false,
  "vpn": false,
  "proxy": false
}

```

Details of the device network. 

Either ipv4 or ipv6 is required field.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ipv4|string|false|none|The device's IPV4 address.<br><br>Not required if you provide the `ipv6` field.|
|ipv6|string|false|none|The device's IPV6 address.<br><br>Not required if you provide the `ipv4` field.|
|tor|boolean|false|none|Specifies if the Tor network was used in the browser session.|
|vpn|boolean|false|none|Specifies if a virtual private network (VPN) was used in the browser session.|
|proxy|boolean|false|none|Specifies if a proxy was used in the browser session.|

<h2 id="tocS_PartialAuthorization">PartialAuthorization</h2>
<!-- backwards compatibility -->
<a id="schemapartialauthorization"></a>
<a id="schema_PartialAuthorization"></a>
<a id="tocSpartialauthorization"></a>
<a id="tocspartialauthorization"></a>

```json
{
  "enabled": true
}

```

Required information to allow partial authorization

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Specifies whether to allow partial authorizations.|

<h2 id="tocS_PaymentAcceptedResponse">PaymentAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentacceptedresponse"></a>
<a id="schema_PaymentAcceptedResponse"></a>
<a id="tocSpaymentacceptedresponse"></a>
<a id="tocspaymentacceptedresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Pending",
  "reference": "ORD-5023-4E89",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "3ds": {
    "downgraded": false,
    "enrolled": "Y",
    "upgrade_reason": "sca_retry"
  },
  "subscription": {
    "id": "string"
  },
  "processing": {
    "continuation_payload": "{\\\"prepay_id\\\":\\\"wx02161421698644ab471821297252eb0000\\\",\\\"partner_id\\\":\\\"1900012731\\\",\\\"timestamp\\\":1651479262,\\\"app_id\\\":\\\"sub_application_id\\\",\\\"nonce\\\":\\\"476d17edadf44915ad533107bd3c71c2\\\",\\\"sign\\\":\\\"QM1CCVAkexZLq00Uz/IxgbqC2ke7Xl9xUayutALc1EebLT1cI85H0biNNjhzQrzFdJ0YCq8KR2Hc9bD01vxRsn18fHzE5bhvn2qlUSOeY7hATfaLYS7+f+gKVj+0iIuUp3qamquErrKYl1g1Vhvlwn1U8TrcjhU0w666YYJuwIP9qPNy6F8wj3ORWM1uYmB9D4v09sTnmZfBPFwuGJzj2PTBGyvoKLu+V1T1HzlC2rwhpDmrSCq0rcFL2smztWGVktpZ2NoggEAVWLjHWsvS8OmzgeosM3ltoCeWjlp1SusmXtlMtUJWyjiVQYHnjb/a42NYk/qynZ/w+BAqLTlDKA==\\\",\\\"pkg\\\":\\\"Sign=WXPay\\\"}",
    "partner_payment_id": "440644309099499894406",
    "pan_type_processed": "fpan",
    "fallback_source_used": false,
    "cko_network_token_available": false,
    "scheme_merchant_id": "123456",
    "payment_reference": "999999964",
    "service_supplier_id": "11854"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4"
    },
    "redirect": {
      "href": "https://{prefix}.api.checkout.com/3ds/pay_mbabizu24mvu3mela5njyhpit4",
      "mobile": {
        "android": {
          "href": "app-scheme://android.com"
        },
        "ios": {
          "href": "app-scheme://ios.com"
        }
      },
      "qr_code": {
        "image": "https://{prefix}.api.sandbox.checkout.com/qr/medium",
        "text": "abc"
      }
    }
  }
}

```

Payment

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|read-only|The payment's unique identifier|
|status|string|true|none|The status of the payment|
|reference|string|false|none|Your reference for the payment request|
|customer|[CustomerResponse](#schemacustomerresponse)|false|none|The customer associated with the payment, if provided in the request|
|3ds|[3dsEnrollmentData](#schema3dsenrollmentdata)|false|none|Provides 3D Secure enrollment status|
|subscription|[Subscription](#schemasubscription)|false|none|The details of the subscription.|
|processing|object|false|read-only|Returns information related to the processing of the payment|
|» continuation_payload|string|false|none|The payload for an in-app payment the merchant can use to continue a payments.|
|» partner_payment_id|string|false|none|The partner-originated unique payment identifier|
|» pan_type_processed|string|false|none|The type of Primary Account Number (PAN) used for the payment. DPAN indicates network token was used, FPAN indicates the full card was used|
|» fallback_source_used|boolean|false|none|Indicates whether the `fallback_source` field was used for the payment.|
|» cko_network_token_available|boolean|false|none|The flag indicating if Checkout Network Token was available for the payment|
|» scheme_merchant_id|string|false|none|The merchant identifier that was configured with the scheme and used for the payment.|
|» payment_reference|string|false|none|The payment reference of the transaction. Can be used to build your own payment slip. Applicable for Multibanco payments.|
|» service_supplier_id|string|false|none|The merchant/service provider identifier of the transaction. Can be used to build your own payment slip. Applicable for Multibanco payments.|
|_links|object|false|read-only|The links related to the payment|
|» self|[Link](#schemalink)|true|none|The URI of the payment|
|» redirect|[RedirectLink](#schemaredirectlink)|false|none|The URI to which the customer is redirected to complete the payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Pending|
|pan_type_processed|fpan|
|pan_type_processed|dpan|

<h2 id="tocS_PaymentAction">PaymentAction</h2>
<!-- backwards compatibility -->
<a id="schemapaymentaction"></a>
<a id="schema_PaymentAction"></a>
<a id="tocSpaymentaction"></a>
<a id="tocspaymentaction"></a>

```json
{
  "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "type": "Authorization",
  "processed_on": "2019-08-24T14:15:22Z",
  "amount": 6540,
  "approved": true,
  "auth_code": "643381",
  "response_code": "10000",
  "response_summary": "Approved",
  "authorization_type": "Estimated",
  "reference": "ORD-5023-4E89",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "processing": {
    "retrieval_reference_number": "909913440644",
    "acquirer_reference_number": "24021219099007452440793",
    "acquirer_transaction_id": "440644309099499894406",
    "capture_action_id": "act_fd3h6evhpn3uxdoqbuu3lqnqbm"
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "metadata": {}
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[ActionId](#schemaactionid)|true|none|The unique identifier of the payment action|
|type|string|true|none|The type of action|
|processed_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the action was processed|
|amount|integer|true|none|The action amount|
|approved|boolean|false|none|Whether the action was successful|
|auth_code|string|false|none|The issuer authorization code for cards. <br><br>Only applicable for payins.|
|response_code|string|true|none|The Gateway response code|
|response_summary|string|false|none|The Gateway response summary|
|authorization_type|string|false|none|The authorization type. <br><br>Only applicable for payins.|
|reference|string|false|none|Your reference for the action.<br><br>Only applicable for payins.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of.<br><br>Only applicable for payins.|
|processing|object|false|none|Returns information related to the processing of the payment. <br><br>Only applicable for payins.|
|» retrieval_reference_number|string|false|none|A unique identifier for the authorization that is submitted to the card scheme during processing|
|» acquirer_reference_number|string|false|none|A unique identifier for the capture that is submitted to the card scheme during processing|
|» acquirer_transaction_id|string|false|none|A unique identifier for the transaction generated by the acquirer|
|» capture_action_id|string|false|none|The Checkout.com action ID of the capture you wanted to refund. Required only for PayPal and Riverty.|
|items|[Items](#schemaitems)|false|none|The order's line item or product that is being purchased.<br><br>Only applicable for payins.|
|metadata|object|false|none|A set of key-value pairs that you can attach to an action.<br><br>Only applicable for payins.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Authorization|
|type|Card Verification|
|type|Void|
|type|Capture|
|type|Refund|
|type|Payout|
|type|Return|
|authorization_type|Final|
|authorization_type|Estimated|
|authorization_type|Incremental|

<h2 id="tocS_PaymentActionsResponse">PaymentActionsResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentactionsresponse"></a>
<a id="schema_PaymentActionsResponse"></a>
<a id="tocSpaymentactionsresponse"></a>
<a id="tocspaymentactionsresponse"></a>

```json
[
  {
    "id": "act_fd3h6evhpn3uxdoqbuu3lqnqbm",
    "type": "Refund",
    "processed_on": "2018-01-20T10:30:48Z",
    "amount": 1000,
    "approved": true,
    "response_code": "10000",
    "response_summary": "Approved"
  },
  {
    "id": "act_gefycn3jcvuupboxfmqrhk2aym",
    "type": "Capture",
    "processed_on": "2018-01-17T10:30:48Z",
    "amount": 6540,
    "approved": true,
    "response_code": "10000",
    "response_summary": "Approved",
    "processing": {
      "acquirer_reference_number": "24021219099007452440793",
      "acquirer_transaction_id": "00745244079"
    },
    "metadata": {
      "shipping_ref": "MQIBN2"
    }
  },
  {
    "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
    "type": "Authorization",
    "processed_on": "2018-01-17T09:30:48Z",
    "amount": 6540,
    "approved": true,
    "auth_code": "643381",
    "response_code": "10000",
    "response_summary": "Approved",
    "reference": "ORD-5023-4E89",
    "processing": {
      "retrieval_reference_number": "909913440644",
      "acquirer_transaction_id": "440644309099499894406"
    }
  }
]

```

The payment actions

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[[PaymentAction](#schemapaymentaction)]|false|none|The payment actions|

<h2 id="tocS_PaymentActionSummary">PaymentActionSummary</h2>
<!-- backwards compatibility -->
<a id="schemapaymentactionsummary"></a>
<a id="schema_PaymentActionSummary"></a>
<a id="tocSpaymentactionsummary"></a>
<a id="tocspaymentactionsummary"></a>

```json
{
  "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "type": "Authorization",
  "response_code": "10000",
  "response_summary": "Approved"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[ActionId](#schemaactionid)|true|none|The unique identifier of the payment action|
|type|string|true|none|The type of action|
|response_code|string|true|none|The Gateway response code|
|response_summary|string|false|none|The Gateway response summary|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Authorization|
|type|Card Verification|
|type|Void|
|type|Capture|
|type|Refund|

<h2 id="tocS_PaymentDetails">PaymentDetails</h2>
<!-- backwards compatibility -->
<a id="schemapaymentdetails"></a>
<a id="schema_PaymentDetails"></a>
<a id="tocSpaymentdetails"></a>
<a id="tocspaymentdetails"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "requested_on": "2019-08-24T14:15:22Z",
  "source": {
    "type": "card",
    "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "expiry_month": 6,
    "expiry_year": 2025,
    "name": "Bruce Wayne",
    "scheme": "VISA",
    "scheme_local": "Cartes_Bancaires",
    "local_schemes": [
      "cartes_bancaires",
      "visa"
    ],
    "last4": "9996",
    "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
    "bin": "45434748",
    "card_type": "CREDIT",
    "card_category": "CONSUMER",
    "card_wallet_type": "applepay",
    "issuer": "GOTHAM STATE BANK",
    "issuer_country": "US",
    "product_id": "F",
    "product_type": "CLASSIC",
    "avs_check": "S",
    "cvv_check": "Y",
    "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
    "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
    "account_update_status": "card_updated",
    "account_update_failure_code": "VAU009",
    "account_holder": {}
  },
  "destination": {
    "type": "bank_account",
    "id": "string"
  },
  "amount": 6540,
  "amount_requested": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "approved": true,
  "expires_on": "string",
  "status": "Authorized",
  "balances": {
    "total_authorized": 6540,
    "total_voided": 0,
    "available_to_void": 6540,
    "total_captured": 0,
    "available_to_capture": 6540,
    "total_refunded": 0,
    "available_to_refund": 0
  },
  "3ds": {
    "downgraded": false,
    "enrolled": "Y",
    "signature_valid": "Y",
    "authentication_response": "Y",
    "authentication_status_reason": "string",
    "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
    "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
    "eci": "string",
    "version": "2.1.0",
    "exemption": "low_value",
    "exemption_applied": "string",
    "challenged": true,
    "upgrade_reason": "sca_retry",
    "trusted_listing": {
      "status": "Y",
      "source": "01"
    }
  },
  "authentication": {
    "experience": "3ds"
  },
  "risk": {
    "flagged": true,
    "score": 22
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "billing_descriptor": {
    "name": "SUPERHEROES.COM",
    "city": "GOTHAM",
    "reference": "string",
    "local_descriptors": [
      {
        "name": "漢字",
        "character_set": "kanji"
      }
    ]
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "payment_ip": "90.197.169.245",
  "sender": {
    "type": "individual",
    "reference": "8285282045818",
    "first_name": "John",
    "last_name": "Jones",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "zip": "SW1A",
    "first_name": "John",
    "last_name": "Jones"
  },
  "processing": {
    "preferred_scheme": "cartes_bancaires",
    "app_id": "com.iap.linker_portal",
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ],
    "partner_customer_id": "2102209000001106125F8",
    "partner_payment_id": "440644309099499894406",
    "partner_code": "999111",
    "failure_code": "partner_error",
    "partner_response_code": "ER_WRONG_TICKET",
    "tax_amount": 1000,
    "locale": "en-US",
    "retrieval_reference_number": "909913440644",
    "partner_order_id": "string",
    "partner_status": "string",
    "partner_transaction_id": "string",
    "partner_error_codes": [
      "string"
    ],
    "partner_merchant_advice_code": "24",
    "partner_error_message": "string",
    "partner_authorization_code": "string",
    "partner_authorization_response_code": "string",
    "partner_fraud_status": "string",
    "pan_type_processed": "fpan",
    "fallback_source_used": false,
    "custom_payment_method_ids": [
      "string"
    ],
    "aft": true,
    "merchant_category_code": "5311",
    "scheme_merchant_id": "123456",
    "scheme": "ACCEL",
    "scheme_transaction_link_id": "string"
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "eci": "06",
  "scheme_id": "488341541494658",
  "actions": [
    {
      "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
      "type": "Authorization",
      "response_code": "10000",
      "response_summary": "Approved"
    }
  ],
  "retry": {
    "enabled": true,
    "attempts_made": 0,
    "max_attempts": 6,
    "ends_on": "2019-08-24T14:15:22Z",
    "next_attempt_on": "2019-08-24T14:15:22Z"
  },
  "cko_network_token_available": false,
  "instruction": {
    "purpose": "financial_services"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "actions": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
    },
    "authorize": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
    },
    "refund": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
    }
  }
}

```

Payment response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|Payment unique identifier|
|requested_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the payment was requested|
|source|[PaymentDetailsResponseSource](#schemapaymentdetailsresponsesource)|false|none|The source of the payment|
|destination|[PaymentResponseDestination](#schemapaymentresponsedestination)|false|none|The destination of the payment|
|amount|integer|true|none|The original payment amount|
|amount_requested|integer|false|none|The full amount from the original authorization, if a partial authorization was requested.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the payment|
|payment_type|string|false|none|This must be specified for card payments where the cardholder is not present (For example, recurring or mail order / telephone order)|
|payment_plan|object|false|none|The details of a recurring subscription or installment|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PlanRecurring](#schemaplanrecurring)|false|none|The information to process a recurring payment request. To be used when the `payment_type` is `recurring`.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PlanInstallment](#schemaplaninstallment)|false|none|The information to process a installment payment request. To be used when the `payment_type` is `installment`.|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|false|none|Your reference for the payment|
|description|string|false|none|A description of the payment|
|approved|boolean|true|none|Whether the payment was successful|
|expires_on|string|false|none|The timestamp (ISO 8601 code) for when the authorization's validity period expires|
|status|string|true|none|The status of the payment|
|balances|[PaymentResponseBalances](#schemapaymentresponsebalances)|false|none|The payment balances|
|3ds|[3dsData](#schema3dsdata)|false|none|Provides information relating to the processing of 3D Secure payments|
|authentication|[PaymentAuthenticationData](#schemapaymentauthenticationdata)|false|none|Provides information relating to the authentication of the payment.|
|risk|object|false|none|Returns the payments risk assessment results|
|» flagged|boolean|false|none|Whether the payment was flagged by a risk check|
|» score|number|false|none|The risk score calculated by our Fraud Detection engine. Absent if not enough data provided.|
|customer|object|false|none|The customer to which this payment is linked|
|» id|string|true|none|The unique identifier of the customer. This can be passed as a source when making a payment|
|» email|string|false|none|The customer's email address|
|» name|string|false|none|The customer's name|
|» summary|[CustomerSummary](#schemacustomersummary)|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`|
|billing_descriptor|[BillingDescriptor](#schemabillingdescriptor)|false|none|An optional description that is displayed on the customer's statement identifying a purchase.|
|shipping|object|false|none|The payment shipping details|
|» address|[Address](#schemaaddress)|false|none|The shipping address|
|» phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number associated with the shipping address|
|payment_ip|[IPAddress](#schemaipaddress)|false|none|The IP address used to make the payment. Used by Checkout.com's risk engine to check the customer's IP address – only accepts IPv4 and IPv6 addresses.|
|sender|[PaymentDetailsResponseSender](#schemapaymentdetailsresponsesender)|false|none|Information about the sender of the payment's funds|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|recipient|[PaymentRecipient](#schemapaymentrecipient)|false|none|Information about the recipient of the payment's funds. Relevant for [Account Funding Transactions](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions) and VISA or Mastercard [domestic UK transactions processed by financial institutions](https://www.checkout.com/docs/payments/regulation-support/requirements-for-financial-institutions).|
|processing|[ProcessingData](#schemaprocessingdata)|false|none|Returns information related to the processing of the payment|
|items|[Items](#schemaitems)|false|none|The order's line items.|
|metadata|object|false|none|A set of key-value pairs that you can attach to a payment. It can be useful for storing additional information in a structured format|
|eci|string|false|none|The final Electronic Commerce Indicator (ECI) security level used to authorize the payment.<br>Applicable for 3D Secure and network token payments|
|scheme_id|string|false|none|The scheme transaction identifier|
|actions|[[PaymentActionSummary](#schemapaymentactionsummary)]|false|none|A summary of the payment's actions,<br>returned when a session ID is used to get the payment details|
|retry|[RetryGetResponse](#schemaretrygetresponse)|false|none|Configuration relating to asynchronous retries|
|cko_network_token_available|boolean|false|none|The flag indicating if Checkout Network Token was available for the payment|
|instruction|object|false|none|Details about the payment instruction.|
|» purpose|string|false|none|The purpose of the payment.|
|_links|object|true|none|The links related to the payment|
|» self|[Link](#schemalink)|true|none|The URI of the payment|
|» actions|[Link](#schemalink)|true|none|A link to the payment's associated actions|
|» authorize|[Link](#schemalink)|false|none|A link to increment the authorization, where applicable|
|» void|[Link](#schemalink)|false|none|A link to void the payment, where applicable|
|» capture|[Link](#schemalink)|false|none|A link to capture the payment, where applicable|
|» refund|[Link](#schemalink)|false|none|A link to refund the payment, where applicable|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|
|payment_type|MOTO|
|payment_type|Installment|
|payment_type|PayLater|
|payment_type|Unscheduled|
|status|Pending|
|status|Authorized|
|status|Card Verified|
|status|Voided|
|status|Partially Captured|
|status|Captured|
|status|Partially Refunded|
|status|Refunded|
|status|Declined|
|status|Canceled|
|status|Expired|
|status|Paid|
|status|Retry Scheduled|

<h2 id="tocS_PaymentDetailsResponseSender">PaymentDetailsResponseSender</h2>
<!-- backwards compatibility -->
<a id="schemapaymentdetailsresponsesender"></a>
<a id="schema_PaymentDetailsResponseSender"></a>
<a id="tocSpaymentdetailsresponsesender"></a>
<a id="tocspaymentdetailsresponsesender"></a>

```json
{
  "type": "individual",
  "reference": "8285282045818",
  "first_name": "John",
  "last_name": "Jones",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

Information about the sender of the payment's funds

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[01_PaymentResponseIndividualSender](#schema01_paymentresponseindividualsender)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[02_PaymentResponseCorporateSender](#schema02_paymentresponsecorporatesender)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[03_PaymentResponseInstrumentSender](#schema03_paymentresponseinstrumentsender)|false|none|Store a previously tokenized instrument|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_PaymentDetailsResponseSource">PaymentDetailsResponseSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentdetailsresponsesource"></a>
<a id="schema_PaymentDetailsResponseSource"></a>
<a id="tocSpaymentdetailsresponsesource"></a>
<a id="tocspaymentdetailsresponsesource"></a>

```json
{
  "type": "card",
  "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "scheme": "VISA",
  "scheme_local": "Cartes_Bancaires",
  "local_schemes": [
    "cartes_bancaires",
    "visa"
  ],
  "last4": "9996",
  "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
  "bin": "45434748",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "card_wallet_type": "applepay",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "avs_check": "S",
  "cvv_check": "Y",
  "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
  "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
  "account_update_status": "card_updated",
  "account_update_failure_code": "VAU009",
  "account_holder": {}
}

```

source

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseCardSource](#schemapaymentgetresponsecardsource)|false|none|A card payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseAlmaSource](#schemapaymentgetresponsealmasource)|false|none|Alma Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseBancontactSource](#schemapaymentgetresponsebancontactsource)|false|none|Bancontact Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseBlikSource](#schemapaymentgetresponsebliksource)|false|none|Blik Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseCurrencyAccountSource](#schemapaymentgetresponsecurrencyaccountsource)|false|none|Currency Account Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseEPSSource](#schemapaymentgetresponseepssource)|false|none|EPS Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseIdealSource](#schemapaymentgetresponseidealsource)|false|none|Ideal Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseKlarnaSource](#schemapaymentgetresponseklarnasource)|false|none|Klarna Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseKnetSource](#schemapaymentgetresponseknetsource)|false|none|KNet Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseMultibancoSource](#schemapaymentgetresponsemultibancosource)|false|none|Multibanco Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseP24Source](#schemapaymentgetresponsep24source)|false|none|P24 Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponsePayPalSource](#schemapaymentgetresponsepaypalsource)|false|none|PayPal Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseQPaySource](#schemapaymentgetresponseqpaysource)|false|none|QPay Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseSEPAV4Source](#schemapaymentgetresponsesepav4source)|false|none|SEPA DD Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseBacsSource](#schemapaymentgetresponsebacssource)|false|none|Bacs Direct Debit Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseSwishSource](#schemapaymentgetresponseswishsource)|false|none|Swish Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseSequraSource](#schemapaymentgetresponsesequrasource)|false|none|Sequra Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentGetResponseTamaraSource](#schemapaymentgetresponsetamarasource)|false|none|Tamara Source|

<h2 id="tocS_PaymentDetailsResponseSourceType">PaymentDetailsResponseSourceType</h2>
<!-- backwards compatibility -->
<a id="schemapaymentdetailsresponsesourcetype"></a>
<a id="schema_PaymentDetailsResponseSourceType"></a>
<a id="tocSpaymentdetailsresponsesourcetype"></a>
<a id="tocspaymentdetailsresponsesourcetype"></a>

```json
"card"

```

Ordered list of payment details response source types

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Ordered list of payment details response source types|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|
|*anonymous*|alma|
|*anonymous*|bacs|
|*anonymous*|bancontact|
|*anonymous*|blik|
|*anonymous*|currency_account|
|*anonymous*|eps|
|*anonymous*|ideal|
|*anonymous*|klarna|
|*anonymous*|knet|
|*anonymous*|multibanco|
|*anonymous*|p24|
|*anonymous*|paypal|
|*anonymous*|qpay|
|*anonymous*|sepa|
|*anonymous*|sequra|
|*anonymous*|swish|
|*anonymous*|tamara|

<h2 id="tocS_PaymentId">PaymentId</h2>
<!-- backwards compatibility -->
<a id="schemapaymentid"></a>
<a id="schema_PaymentId"></a>
<a id="tocSpaymentid"></a>
<a id="tocspaymentid"></a>

```json
"pay_mbabizu24mvu3mela5njyhpit4"

```

The payment identifier.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The payment identifier.|

<h2 id="tocS_PaymentInstruction">PaymentInstruction</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinstruction"></a>
<a id="schema_PaymentInstruction"></a>
<a id="tocSpaymentinstruction"></a>
<a id="tocspaymentinstruction"></a>

```json
{
  "scheme": "local",
  "remittance": {
    "reference": "string"
  }
}

```

Details about the instruction for payouts to bank accounts.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|scheme|string|false|none|An option to restrict the payment scheme type, when not available payouts will fail.|
|remittance|object|false|none|none|
|» reference|string|false|none|A merchant-provided reference for the remittance payment. This value is used for payment reconciliation and is reviewed by our banking partner.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|local|
|scheme|instant|

<h2 id="tocS_PaymentInstructionResponse">PaymentInstructionResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentinstructionresponse"></a>
<a id="schema_PaymentInstructionResponse"></a>
<a id="tocSpaymentinstructionresponse"></a>
<a id="tocspaymentinstructionresponse"></a>

```json
{
  "value_date": "2020-06-12T22:27:42.512594Z"
}

```

Instruction details for payouts to bank accounts.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|value_date|string(date-time)|false|none|The date (in ISO 8601 format) and time at which the recipient's account will be credited.|

<h2 id="tocS_PaymentPaged">PaymentPaged</h2>
<!-- backwards compatibility -->
<a id="schemapaymentpaged"></a>
<a id="schema_PaymentPaged"></a>
<a id="tocSpaymentpaged"></a>
<a id="tocspaymentpaged"></a>

```json
{
  "limit": 10,
  "skip": 10,
  "total_count": 1,
  "data": [
    {
      "id": "pay_mbabizu24mvu3mela5njyhpit4",
      "requested_on": "2019-08-24T14:15:22Z",
      "source": {
        "type": "card",
        "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
        "billing_address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "phone": {
          "country_code": "+1",
          "number": "415 555 2671"
        },
        "expiry_month": 6,
        "expiry_year": 2025,
        "name": "Bruce Wayne",
        "scheme": "VISA",
        "scheme_local": "Cartes_Bancaires",
        "local_schemes": [
          "cartes_bancaires",
          "visa"
        ],
        "last4": "9996",
        "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
        "bin": "45434748",
        "card_type": "CREDIT",
        "card_category": "CONSUMER",
        "card_wallet_type": "applepay",
        "issuer": "GOTHAM STATE BANK",
        "issuer_country": "US",
        "product_id": "F",
        "product_type": "CLASSIC",
        "avs_check": "S",
        "cvv_check": "Y",
        "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
        "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
        "account_update_status": "card_updated",
        "account_update_failure_code": "VAU009",
        "account_holder": {}
      },
      "destination": {
        "type": "bank_account",
        "id": "string"
      },
      "amount": 6540,
      "amount_requested": 6540,
      "currency": "USD",
      "payment_type": "Recurring",
      "payment_plan": {
        "amount_variability": "Variable",
        "days_between_payments": 28,
        "total_number_of_payments": 5,
        "current_payment_number": 3,
        "expiry": "20251031",
        "name": "Subscription 1234",
        "start_date": "20260507",
        "amount": 1234
      },
      "reference": "ORD-5023-4E89",
      "description": "Set of 3 masks",
      "approved": true,
      "expires_on": "string",
      "status": "Authorized",
      "balances": {
        "total_authorized": 6540,
        "total_voided": 0,
        "available_to_void": 6540,
        "total_captured": 0,
        "available_to_capture": 6540,
        "total_refunded": 0,
        "available_to_refund": 0
      },
      "3ds": {
        "downgraded": false,
        "enrolled": "Y",
        "signature_valid": "Y",
        "authentication_response": "Y",
        "authentication_status_reason": "string",
        "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
        "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
        "eci": "string",
        "version": "2.1.0",
        "exemption": "low_value",
        "exemption_applied": "string",
        "challenged": true,
        "upgrade_reason": "sca_retry",
        "trusted_listing": {
          "status": "Y",
          "source": "01"
        }
      },
      "authentication": {
        "experience": "3ds"
      },
      "risk": {
        "flagged": true,
        "score": 22
      },
      "customer": {
        "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
        "email": "brucewayne@gmail.com",
        "name": "Bruce Wayne",
        "summary": {
          "registration_date": "2023-05-01",
          "first_transaction_date": "2023-07-01",
          "last_payment_date": "2023-08-01",
          "total_order_count": 15,
          "last_payment_amount": 500,
          "is_premium_customer": true,
          "is_returning_customer": true,
          "lifetime_value": 500
        }
      },
      "billing_descriptor": {
        "name": "SUPERHEROES.COM",
        "city": "GOTHAM",
        "reference": "string",
        "local_descriptors": [
          {
            "name": "漢字",
            "character_set": "kanji"
          }
        ]
      },
      "shipping": {
        "address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "phone": {
          "country_code": "+1",
          "number": "415 555 2671"
        }
      },
      "payment_ip": "90.197.169.245",
      "sender": {
        "type": "individual",
        "reference": "8285282045818",
        "first_name": "John",
        "last_name": "Jones",
        "address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        }
      },
      "amount_allocations": [
        {
          "id": "ent_w4jelhppmfiufdnatam37wrfc4",
          "amount": 1000,
          "reference": "ORD-5023-4E89",
          "commission": {
            "amount": 1000,
            "percentage": 1.125
          }
        }
      ],
      "recipient": {
        "dob": "1985-05-15",
        "account_number": "5555554444",
        "address": {
          "address_line1": "123 High St.",
          "address_line2": "Flat 456",
          "city": "London",
          "state": "str",
          "zip": "SW1A 1AA",
          "country": "GB"
        },
        "zip": "SW1A",
        "first_name": "John",
        "last_name": "Jones"
      },
      "processing": {
        "preferred_scheme": "cartes_bancaires",
        "app_id": "com.iap.linker_portal",
        "airline_data": [
          {
            "ticket": {
              "number": "045-21351455613",
              "issue_date": "2023-05-20",
              "issuing_carrier_code": "AI",
              "travel_package_indicator": "B",
              "travel_agency_name": "World Tours",
              "travel_agency_code": "01"
            },
            "passenger": [
              {
                "first_name": "John",
                "last_name": "White",
                "date_of_birth": "1990-05-26",
                "address": {
                  "country": "US"
                }
              }
            ],
            "flight_leg_details": [
              {
                "flight_number": "101",
                "carrier_code": "BA",
                "class_of_travelling": "J",
                "departure_airport": "LHR",
                "departure_date": "2023-06-19",
                "departure_time": "15:30",
                "arrival_airport": "LAX",
                "stop_over_code": "x",
                "fare_basis_code": "SPRSVR"
              }
            ]
          }
        ],
        "accommodation_data": [
          {
            "name": "The Sea View Hotel",
            "booking_reference": "HOTEL123",
            "check_in_date": "2023-06-20",
            "check_out_date": "2023-06-23",
            "address": {
              "address_line1": "123 Beach Road",
              "zip": "10001"
            },
            "state": "FL",
            "country": "USA",
            "city": "Los Angeles",
            "number_of_rooms": 2,
            "guests": [
              {
                "first_name": "Jane",
                "last_name": "Doe",
                "date_of_birth": "1985-07-14"
              }
            ],
            "room": [
              {
                "rate": "70",
                "number_of_nights_at_room_rate": "3"
              }
            ],
            "property_phone": [
              {
                "country_code": "44",
                "number": "7123456789"
              }
            ],
            "customer_service_phone": [
              {
                "country_code": "44",
                "number": "7123456789"
              }
            ]
          }
        ],
        "partner_customer_id": "2102209000001106125F8",
        "partner_payment_id": "440644309099499894406",
        "partner_code": "999111",
        "failure_code": "partner_error",
        "partner_response_code": "ER_WRONG_TICKET",
        "tax_amount": 1000,
        "locale": "en-US",
        "retrieval_reference_number": "909913440644",
        "partner_order_id": "string",
        "partner_status": "string",
        "partner_transaction_id": "string",
        "partner_error_codes": [
          "string"
        ],
        "partner_merchant_advice_code": "24",
        "partner_error_message": "string",
        "partner_authorization_code": "string",
        "partner_authorization_response_code": "string",
        "partner_fraud_status": "string",
        "pan_type_processed": "fpan",
        "fallback_source_used": false,
        "custom_payment_method_ids": [
          "string"
        ],
        "aft": true,
        "merchant_category_code": "5311",
        "scheme_merchant_id": "123456",
        "scheme": "ACCEL",
        "scheme_transaction_link_id": "string"
      },
      "items": [
        {
          "type": "digital",
          "sub_type": "stablecoin",
          "name": "Necklace",
          "quantity": 2,
          "unit_price": 50,
          "reference": "858818ac",
          "commodity_code": "DEF123",
          "unit_of_measure": "metres",
          "total_amount": 29000,
          "tax_rate": 2000,
          "tax_amount": 1000,
          "tax_exempt": true,
          "discount_amount": 1000,
          "wxpay_goods_id": "1001",
          "url": "string",
          "image_url": "string",
          "service_ends_on": "2025-01-01",
          "purchase_country": "GB",
          "foreign_retailer_amount": 200
        }
      ],
      "metadata": {
        "coupon_code": "NY2018",
        "partner_id": 123989
      },
      "eci": "06",
      "scheme_id": "488341541494658",
      "actions": [
        {
          "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
          "type": "Authorization",
          "response_code": "10000",
          "response_summary": "Approved"
        }
      ],
      "retry": {
        "enabled": true,
        "attempts_made": 0,
        "max_attempts": 6,
        "ends_on": "2019-08-24T14:15:22Z",
        "next_attempt_on": "2019-08-24T14:15:22Z"
      },
      "cko_network_token_available": false,
      "instruction": {
        "purpose": "financial_services"
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
        },
        "actions": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
        },
        "authorize": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
        },
        "refund": {
          "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
        }
      }
    }
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|limit|integer|false|none|The numbers of results to retrieve|
|skip|integer|false|none|The number of results to skip|
|total_count|integer|false|none|The total number of results matching the payment reference. This number is unaffected by the values of the `skip` and `limit` parameters|
|data|[[PaymentDetails](#schemapaymentdetails)]|false|none|The list of payments|

<h2 id="tocS_PaymentPlan">PaymentPlan</h2>
<!-- backwards compatibility -->
<a id="schemapaymentplan"></a>
<a id="schema_PaymentPlan"></a>
<a id="tocSpaymentplan"></a>
<a id="tocspaymentplan"></a>

```json
{
  "days_between_payments": 28,
  "total_number_of_payments": 5,
  "current_payment_number": 3,
  "expiry": "20251031",
  "name": "Subscription 1234",
  "start_date": "20260507",
  "amount": 1234
}

```

PaymentPlan

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|days_between_payments|integer|false|none|Indicates the minimum number of days between payments|
|total_number_of_payments|integer|false|none|Indicates the agreed total number of payments|
|current_payment_number|integer|false|none|The number of the current installment payment|
|expiry|string|false|none|The date after which no further payments will be performed in the format YYYYMMDD|
|name|string|false|none|The name of the payment plan.<br><br>Required when `source.type` is `blik`. For Blik merchant-initiated requests using an external `partner_agreement_id`, this value is used as the Blik Alias Label.|
|start_date|string|false|none|The date on which the first payment will be taken, in `YYYYMMDD` format.<br><br>Required when `source.type` is `blik` and the recurring agreement is created without an initial payment (`amount` set to `0`).|
|amount|integer|false|none|The amount to charge for each payment in the plan, in the [minor currency unit](https://www.checkout.com/docs/resources/calculating-the-amount).<br><br>Required when `source.type` is `blik`, `payment_plan.amount_variability` is `Fixed`, and the recurring agreement is created without an initial payment (`amount` set to `0`).|

<h2 id="tocS_PaymentRecipient">PaymentRecipient</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrecipient"></a>
<a id="schema_PaymentRecipient"></a>
<a id="tocSpaymentrecipient"></a>
<a id="tocspaymentrecipient"></a>

```json
{
  "dob": "1985-05-15",
  "account_number": "5555554444",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "zip": "SW1A",
  "first_name": "John",
  "last_name": "Jones"
}

```

Information about the recipient of the payment's funds. Relevant for [Account Funding Transactions](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions) and VISA or Mastercard [domestic UK transactions processed by financial institutions](https://www.checkout.com/docs/payments/regulation-support/requirements-for-financial-institutions).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|dob|string(date)|false|none|The recipient's date of birth (yyyy-mm-dd)|
|account_number|string|false|none|Any identifier like part of the PAN (first six digits and last four digits), an IBAN, an internal account number, or a phone number related to the primary recipient's account|
|address|[Address](#schemaaddress)|false|none|The recipient's address|
|zip|string|false|none|Replaced by `address.zip`<br><br>The first part of the UK postcode (e.g., SW1A 1AA would be SW1A).|
|first_name|string|false|none|The recipient's first name|
|last_name|string|false|none|The recipient's last name|

<h2 id="tocS_PaymentRequest">PaymentRequest</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequest"></a>
<a id="schema_PaymentRequest"></a>
<a id="tocSpaymentrequest"></a>
<a id="tocspaymentrequest"></a>

```json
{
  "source": {
    "number": "4543474002249996",
    "expiry_month": 6,
    "expiry_year": 2030,
    "name": "Bruce Wayne",
    "cvv": "956",
    "stored": true,
    "store_for_future_use": false,
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "account_holder": {},
    "allow_update": false,
    "type": "card"
  },
  "fallback_source": {
    "number": "4543474002249996",
    "expiry_month": 6,
    "expiry_year": 2030,
    "name": "Bruce Wayne",
    "cvv": "956",
    "stored": true,
    "store_for_future_use": false,
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "account_holder": {},
    "allow_update": false,
    "type": "card"
  },
  "amount": 6540,
  "currency": "USD",
  "payment_type": "Recurring",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "merchant_initiated": true,
  "reference": "ORD-5023-4E89",
  "description": "Set of 3 masks",
  "authorization_type": "Estimated",
  "partial_authorization": {
    "enabled": true
  },
  "capture": true,
  "capture_on": "2019-08-24T14:15:22Z",
  "expire_on": "2019-08-24T14:15:22Z",
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "brucewayne@gmail.com",
    "name": "Bruce Wayne",
    "tax_number": "1350693505279",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "billing_descriptor": {
    "name": "SUPERHEROES.COM",
    "city": "GOTHAM",
    "reference": "string",
    "local_descriptors": [
      {
        "name": "漢字",
        "character_set": "kanji"
      }
    ]
  },
  "shipping": {
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "from_address_zip": "123456",
    "timeframe": "SameDay",
    "method": "BillingAddress",
    "delay": 5
  },
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "authentication": {
    "preferred_experiences": [
      "google_spa",
      "3ds"
    ]
  },
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "previous_payment_id": "pay_fun26akvvjjerahhctaq2uzhu4",
  "risk": {
    "enabled": false,
    "device_session_id": "dsid_ipsmclhxwq72phhr32iwfvrflm",
    "device": {
      "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
      "network": {
        "ipv4": "63.33.82.13",
        "ipv6": "2001:0000:130F:0000:0000:09C0:876A:130B",
        "tor": false,
        "vpn": false,
        "proxy": false
      },
      "provider": {
        "id": "1728646225211.AfUgxG",
        "name": "List [ \"merchant\", \"fingerprintjs\", \"riskify\" ]"
      },
      "timestamp": "2024-02-06T15:00:00.000Z",
      "timezone": "60",
      "virtual_machine": false,
      "incognito": false,
      "jailbroken": false,
      "rooted": false,
      "java_enabled": false,
      "javascript_enabled": false,
      "language": "FR-fr",
      "color_depth": "16",
      "screen_height": "1080",
      "screen_width": "1920",
      "user_agent_client_hint": "string",
      "iframe_payment_allowed": true,
      "accept_header": "string"
    }
  },
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/fail",
  "payment_ip": "90.197.169.245",
  "sender": {
    "type": "individual",
    "reference": "string",
    "first_name": "John",
    "last_name": "Jones",
    "date_of_birth": "1985-05-15",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "identification": {
      "type": "driving_licence",
      "number": "1234",
      "issuing_country": "GT"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "zip": "SW1A",
    "first_name": "John",
    "last_name": "Jones"
  },
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "processing": {
    "order_id": "123456789",
    "tax_amount": 3000,
    "surcharge_amount": 200,
    "discount_amount": 0,
    "duty_amount": 0,
    "shipping_amount": 300,
    "shipping_tax_amount": 100,
    "aft": true,
    "preferred_scheme": "mastercard",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "product_type": "QR Code",
    "open_id": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
    "original_order_amount": 10,
    "receipt_id": "10",
    "terminal_type": "WAP",
    "os_type": "ANDROID",
    "invoice_id": "string",
    "locale": "en-US",
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ],
        "property_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ],
        "customer_service_phone": [
          {
            "country_code": "44",
            "number": "7123456789"
          }
        ]
      }
    ],
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "service_type": "standard",
    "partner_code": "902111",
    "provision_network_token": true,
    "card_type": "credit",
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "GB",
    "foreign_retailer_amount": 200,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    },
    "scheme_transaction_link_id": "string"
  },
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "retry": {
    "enabled": true,
    "dunning": {
      "enabled": true,
      "max_attempts": 6,
      "end_after_days": 30
    },
    "downtime": {
      "enabled": true
    }
  },
  "subscription": {
    "id": "string"
  },
  "metadata": {
    "coupon_code": "NY2018"
  },
  "segment": {
    "brand": "Acme Corporation",
    "business_category": "Inward Payments",
    "market": "UK"
  },
  "instruction": {
    "purpose": "donations"
  },
  "routing": {
    "attempts": [
      {
        "scheme": "accel"
      }
    ]
  }
}

```

Payment

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[PaymentRequestSource](#schemapaymentrequestsource)|false|none|The source of the payment|
|fallback_source|[PaymentRequestFallbackSource](#schemapaymentrequestfallbacksource)|false|none|A card payment source|
|amount|integer(int64)|false|none|The payment amount. To perform a card verification, do not provide the amount or provide a value of `0`.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>|
|payment_type|string|false|none|The type of payment.<br><br>This field is required for card payments in which the cardholder is not present. For example, mail orders, telephone orders, or merchant-initiated transactions (MITs) in a [recurring payment](https://www.checkout.com/docs/payments/accept-payments/pay-with-stored-card-details/recurring-payments-with-stored-card-details) series.<br><br>For MITs, this field must not be set to `Regular`.|
|payment_plan|object|false|none|The details of a recurring subscription or installment|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PlanRecurring](#schemaplanrecurring)|false|none|The information to process a recurring payment request. To be used when the `payment_type` is `recurring`.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PlanInstallment](#schemaplaninstallment)|false|none|The information to process a installment payment request. To be used when the `payment_type` is `installment`.|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|merchant_initiated|boolean|false|none|Whether the payment is a merchant-initiated transaction (MIT).<br><br><a href="https://www.checkout.com/docs/payments/accept-payments/use-saved-details/about-stored-card-details" target="_blank">Must be set to `true` for all MITs</a>.<br><br>If you set this field to `true`, the value for `payment_type` must not be set to `Regular`.|
|reference|string|false|none|A reference you can use to identify the payment. For example, an order number.<br>  - For Amex payments, the reference has a 30-character limit.<br>  - For Benefit payments, the reference must be a unique alphanumeric value.<br>  - For Blik payments, the reference has a 35-character limit.<br>  - For Discover payments, the reference has a 60-character limit.<br>  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.<br>  - For OmanNet payments, the reference must be a unique alphanumeric value between 12 and 30 characters long, generated for every payment action.<br>  - For seQura payments, the reference is required and must be a unique value.<br>  - For TWINT payments, the reference has a 50 character limit.|
|description|string|false|none|A description of the payment.|
|authorization_type|string|false|none|The authorization type|
|partial_authorization|[PartialAuthorization](#schemapartialauthorization)|false|none|Required information to allow partial authorization|
|capture|boolean|false|none|Whether to capture the payment (if applicable)|
|capture_on|[Timestamp](#schematimestamp)|false|none|A timestamp (ISO 8601 code) that determines when the payment should be captured.<br>Providing this field will automatically set `capture` to true|
|expire_on|[Timestamp](#schematimestamp)|false|none|The date and time when the Multibanco payment expires in UTC. </br>Format – ISO 8601 <br/>Example– `2025-01-31T10:20:30.456`|
|customer|[CustomerRequest](#schemacustomerrequest)|false|none|The customer's details. Required if `source.type` is `tamara`|
|billing_descriptor|[BillingDescriptor](#schemabillingdescriptor)|false|none|An optional description that is displayed on the customer's statement identifying a purchase.|
|shipping|[Shipping](#schemashipping)|false|none|The shipping details.|
|3ds|object|false|none|Information required for 3D Secure authentication payments.|

anyOf - discriminator: 3dsRequest.enabled

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[3dsRequest](#schema3dsrequest)|false|none|Required information to process a 3DS authentication with the payment request|

or

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[3dsRequestStandalone](#schema3dsrequeststandalone)|false|none|Required information to process a payment that has been 3DS authenticated using our <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions#Non-hosted" target="_blank">Standalone authentication</a>|

or

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[3dsRequestThirdParty](#schema3dsrequestthirdparty)|false|none|Required information to process a payment that has been 3DS authenticated using a <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions#Non-hosted" target="_blank">Third Party provider</a>|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|authentication|[PaymentAuthenticationRequest](#schemapaymentauthenticationrequest)|false|none|Provides information required to authenticate payments.|
|processing_channel_id|string|false|none|The processing channel to be used for the payment|
|previous_payment_id|string|false|none|An identifier that links the payment to an existing series of payments.<br><br>You must only pass this field if the transaction is a merchant-initiated transaction (MIT) in a <a href="https://www.checkout.com/docs/payments/accept-payments/pay-with-stored-card-details/recurring-payments-with-stored-card-details" target="blank">recurring payment series</a>.<br><br>To link the payment, pass one of the following as its value:<br>- a payment identifier (for example, `pay_cr4hxwizzp6k7biycuk2ibltnm`) from the recurring series, or<br>- the scheme transaction ID|
|risk|[RiskRequest](#schemariskrequest)|false|none|Configures the risk assessment performed during the processing of the payment|
|success_url|string(uri)|false|none|For redirect payment methods, this overrides the default success redirect URL configured on your account|
|failure_url|string(uri)|false|none|For redirect payment methods, this overrides the default failure redirect URL configured on your account|
|payment_ip|[IPAddress](#schemaipaddress)|false|none|Use the `risk.device.network.ipv4` or `risk.device.network.ipv6` field instead.<br><br>The IP address used to make the payment. Used by Checkout.com's risk engine to check the customer's IP address – only accepts IPv4 and IPv6 addresses. Required if `source.type` is `sequra`|
|sender|[PaymentRequestSender](#schemapaymentrequestsender)|false|none|Information about the sender of the payment's funds|
|recipient|[PaymentRecipient](#schemapaymentrecipient)|false|none|Information about the recipient of the payment's funds. Relevant for [Account Funding Transactions](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions) and VISA or Mastercard [domestic UK transactions processed by financial institutions](https://www.checkout.com/docs/payments/regulation-support/requirements-for-financial-institutions).|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|processing|[PaymentRequestProcessing](#schemapaymentrequestprocessing)|false|none|Use the processing object to influence or override the data sent during card processing|
|items|[Items](#schemaitems)|false|none|The order's line items.|
|retry|[RetryRequest](#schemaretryrequest)|false|none|Configuration of asynchronous retries.<br>For more information about asynchronous retries and supported response codes, see [Configure scheduled retries](https://www.checkout.com/docs/payments/manage-payments/configure-scheduled-retries).|
|subscription|[Subscription](#schemasubscription)|false|none|The details of the subscription.|
|metadata|object|false|none|Stores additional information about a transaction with custom fields and up to five user-defined fields, which you can use for reporting purposes. The object supports `string`, `number`, and `boolean` fields, but not arrays or objects.<br><br>You can provide up to 20 metadata fields per API call, but the value of each field must not exceed 255 characters in length.<br><br>You can also reference [`metadata` properties](https://www.checkout.com/docs/business-operations/prevent-fraud/understand-fraud-detection#Metadata) in your custom rules for Fraud Detection. For example, `$coupon_code = '1234’`.|
|segment|[Segment](#schemasegment)|false|none|The dimension details about business segment for payment request. At least one dimension required.|
|instruction|object|false|none|Details about the payment instruction.|
|» purpose|[Purpose](#schemapurpose)|false|none|The purpose of the payment.<br>This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).<br>See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.|
|routing|object|false|none|Controls processor attempts at the payment level.|
|» attempts|[[Attempt](#schemaattempt)]|false|none|Specifies the processing rules for the payment. Each object in the array should be a unique expression of rules that determine the routing attempts to process the payment with. For example:<br><br>```<br>"attempts": [<br>  {<br>    "scheme": "mastercard"<br>  },<br>  {<br>    "scheme": "visa"<br>  }<br>]<br>```|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|Regular|
|payment_type|Recurring|
|payment_type|MOTO|
|payment_type|Installment|
|payment_type|PayLater|
|payment_type|Unscheduled|
|authorization_type|Final|
|authorization_type|Estimated|

<h2 id="tocS_PaymentRequestDestination">PaymentRequestDestination</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestdestination"></a>
<a id="schema_PaymentRequestDestination"></a>
<a id="tocSpaymentrequestdestination"></a>
<a id="tocspaymentrequestdestination"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

The destination of the payout.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestIdDestination](#schemapaymentrequestiddestination)|false|none|An existing payment instrument.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentBankAccountDestination](#schemapaymentbankaccountdestination)|false|none|An existing payment instrument.|

<h2 id="tocS_PaymentRequestProcessing">PaymentRequestProcessing</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestprocessing"></a>
<a id="schema_PaymentRequestProcessing"></a>
<a id="tocSpaymentrequestprocessing"></a>
<a id="tocspaymentrequestprocessing"></a>

```json
{
  "order_id": "123456789",
  "tax_amount": 3000,
  "surcharge_amount": 200,
  "discount_amount": 0,
  "duty_amount": 0,
  "shipping_amount": 300,
  "shipping_tax_amount": 100,
  "aft": true,
  "preferred_scheme": "mastercard",
  "merchant_initiated_reason": "Delayed_charge",
  "campaign_id": 0,
  "product_type": "QR Code",
  "open_id": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
  "original_order_amount": 10,
  "receipt_id": "10",
  "terminal_type": "WAP",
  "os_type": "ANDROID",
  "invoice_id": "string",
  "locale": "en-US",
  "airline_data": [
    {
      "ticket": {
        "number": "045-21351455613",
        "issue_date": "2023-05-20",
        "issuing_carrier_code": "AI",
        "travel_package_indicator": "B",
        "travel_agency_name": "World Tours",
        "travel_agency_code": "01"
      },
      "passenger": [
        {
          "first_name": "John",
          "last_name": "White",
          "date_of_birth": "1990-05-26",
          "address": {
            "country": "US"
          }
        }
      ],
      "flight_leg_details": [
        {
          "flight_number": "101",
          "carrier_code": "BA",
          "class_of_travelling": "J",
          "departure_airport": "LHR",
          "departure_date": "2023-06-19",
          "departure_time": "15:30",
          "arrival_airport": "LAX",
          "stop_over_code": "x",
          "fare_basis_code": "SPRSVR"
        }
      ]
    }
  ],
  "accommodation_data": [
    {
      "name": "The Sea View Hotel",
      "booking_reference": "HOTEL123",
      "check_in_date": "2023-06-20",
      "check_out_date": "2023-06-23",
      "address": {
        "address_line1": "123 Beach Road",
        "zip": "10001"
      },
      "state": "FL",
      "country": "USA",
      "city": "Los Angeles",
      "number_of_rooms": 2,
      "guests": [
        {
          "first_name": "Jane",
          "last_name": "Doe",
          "date_of_birth": "1985-07-14"
        }
      ],
      "room": [
        {
          "rate": "70",
          "number_of_nights_at_room_rate": "3"
        }
      ],
      "property_phone": [
        {
          "country_code": "44",
          "number": "7123456789"
        }
      ],
      "customer_service_phone": [
        {
          "country_code": "44",
          "number": "7123456789"
        }
      ]
    }
  ],
  "merchant_callback_url": "string",
  "line_of_business": "Flights",
  "pan_preference": "fpan",
  "service_type": "standard",
  "partner_code": "902111",
  "provision_network_token": true,
  "card_type": "credit",
  "affiliate_id": "string",
  "affiliate_url": "www.mycrypto.com",
  "purchase_country": "GB",
  "foreign_retailer_amount": 200,
  "reconciliation_id": "4123495123",
  "aggregator": {
    "sub_merchant_id": "9cf70789ba90123",
    "aggregator_id_visa": "10012345",
    "aggregator_id_mc": "00000123456"
  },
  "scheme_transaction_link_id": "string"
}

```

Use the processing object to influence or override the data sent during card processing

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|order_id|string|false|none|The number provided by the cardholder. Purchase order or invoice number may be used.|
|tax_amount|number|false|none|The total amount of sales tax on the total purchase amount.|
|surcharge_amount|integer|false|none|Surcharge amount applied to the transaction in minor units by the merchant.|
|discount_amount|number|false|none|The discount amount applied to the transaction by the merchant.|
|duty_amount|number|false|none|The total charges for any import/export duty included in the transaction.|
|shipping_amount|number|false|none|The total freight or shipping and handling charges for the transaction.|
|shipping_tax_amount|number|false|none|The tax amount of the freight or shipping and handling charges for the transaction.|
|aft|boolean|false|none|Indicates if the payment is an [Account Funding Transaction](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions)|
|preferred_scheme|string|false|none|The preferred scheme for co-badged card payment processing. If performing 3DS via a third party, set this value to the scheme that processed 3DS. This field does not support PINless debit schemes in the US (STAR, PULSE, NYCE, ACCEL, SHAZAM).|
|merchant_initiated_reason|string|false|none|Indicates the reason for a merchant-initiated payment request.|
|campaign_id|integer|false|none|Unique number of the campaign this payment will be running in. Only required for Afterpay campaign invoices.|
|product_type|string|false|none|Product type of the payment. Used when `source.type` is<br><br>  <ul><li>`wechatpay` - required. Enum:<br>    <ul><br>      <li>`QR Code`</li><br>      <li>`In-App`</li><br>      <li>`Official Account`</li><br>      <li>`Mini Program`</li><br>    </ul><br>  </li><br>  <li>`tamara` - optional. You can omit this if you've chosen the default pay installment option or want the payment provider to show all the available Tamara options to the customer during redirection. Enum:<br>    <ul><br>      <li>`pay_in_full`</li><br>      <li>`pay_by_instalment_2`</li><br>      <li>`pay_by_instalment_3`</li><br>      <li>`pay_by_instalment_4`</li><br>      <li>`pay_by_instalment_6`</li><br>    </ul><br>  </li><br>  <li>`sequra` - required. Enum:<br>    <ul><br>      <li>`invoice`</li><br>      <li>`pay_later`</li><br>      <li>`pay_by_instalment_3`</li><br>      <li>`pay_by_instalment`</li><br>    </ul><br>  </li></ul>|
|open_id|string|false|none|Value obtained from WeChat Web Authorization API before initiating Official Account or Mini Program payments. Required if `source.type` is `wechatpay` and `processing.product_type` is `Official Account` or `Mini Program`.|
|original_order_amount|number|false|none|The payment for a merchant's order may be split, and the original order price indicates the transaction amount of the entire order.|
|receipt_id|string|false|none|Merchant receipt ID.|
|terminal_type|string|false|none|The client-side terminal type, if it is a website that is opened via a PC browser or a mobile browser or mobile application.|
|os_type|string|false|none|This field is required when `terminalType` is not `WEB`.|
|invoice_id|string|false|none|Invoice ID number.|
|locale|string|false|none|The language and region of the customer in ISO 639-2 language code; value consists of language-country.|
|airline_data|[AirlineData](#schemaairlinedata)|false|none|Contains information about the airline ticket and flights booked by the customer.|
|accommodation_data|[AccommodationData](#schemaaccommodationdata)|false|none|Contains information about the accommodation booked by the customer.|
|merchant_callback_url|string|false|none|A URL which you can use to notify the customer that the order has been created.|
|line_of_business|string|false|none|<span style="font-size: 12px; font-weight: 500; color: rgb(0, 0, 0); background-color: rgb(255, 176, 97); border-radius: 4px; padding: 2px 6px" >Beta</span><p></p><br>The line of business that the payment is associated with.|
|pan_preference|string|false|none|Specifies the preferred type of Primary Account Number (PAN) for the payment.<br><br>Note: This only works for source.type cards, instruments and tokens.<br>* **DPAN**: Indicates a preference for using the Checkout.com Network Token.<br>* **FPAN**: Indicates a preference for using the full card number.|
|service_type|string|false|none|Specifies which ACH service to use for the payment, if you set `source.type` to `ach`.|
|partner_code|string|false|none|The customer's 6-digit Blik code.<br><br>Required when `source.type` is `blik` and `merchant_initiated` is `false` (For example, for `Regular` payments and the initial payment of a `Recurring` agreement).|
|provision_network_token|boolean|false|none|Indicates whether to provision a network token for the payment.|
|card_type|string|false|none|Specifies whether to process the payment as a credit or debit transaction, if a combo card is used.<br><br>This field is required for domestic payments in Brazil performed using a Brazilian card.|
|affiliate_id|string|false|none|The unique identifier for Visa-registered ramp providers. <br><br>Must only contain alphanumeric characters.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|affiliate_url|string|false|none|The affiliate URL.<br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|purchase_country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="_blank">ISO country code</a> of the purchase country. <br><br>If you're a Visa-registered ramp provider operating with affiliates, this field is required.|
|foreign_retailer_amount|integer|false|none|The foreign retailer amount the merchant applied to the transaction, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value).|
|reconciliation_id|string|false|none|The transaction identifier to track a payment request.|
|aggregator|[Aggregator](#schemaaggregator)|false|none|Information about the payment aggregator.|
|scheme_transaction_link_id|string|false|none|The scheme transaction link identifier.|

#### Enumerated Values

|Property|Value|
|---|---|
|preferred_scheme|mastercard|
|preferred_scheme|visa|
|preferred_scheme|cartes_bancaires|
|merchant_initiated_reason|Delayed_charge|
|merchant_initiated_reason|Resubmission|
|merchant_initiated_reason|No_show|
|merchant_initiated_reason|Reauthorization|
|terminal_type|APP|
|terminal_type|WAP|
|terminal_type|WEB|
|os_type|ANDROID|
|os_type|IOS|
|pan_preference|fpan|
|pan_preference|dpan|
|service_type|same_day|
|service_type|standard|
|card_type|credit|
|card_type|debit|

<h2 id="tocS_PaymentRequestSender">PaymentRequestSender</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestsender"></a>
<a id="schema_PaymentRequestSender"></a>
<a id="tocSpaymentrequestsender"></a>
<a id="tocspaymentrequestsender"></a>

```json
{
  "type": "individual",
  "reference": "string",
  "first_name": "John",
  "last_name": "Jones",
  "date_of_birth": "1985-05-15",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "identification": {
    "type": "driving_licence",
    "number": "1234",
    "issuing_country": "GT"
  }
}

```

Information about the sender of the payment's funds

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.|
|reference|string|false|none|The unique reference for the sender of the payment.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[01_PaymentRequestIndividualSender](#schema01_paymentrequestindividualsender)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[02_PaymentRequestCorporateSender](#schema02_paymentrequestcorporatesender)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[03_PaymentRequestInstrumentSender](#schema03_paymentrequestinstrumentsender)|false|none|Store a previously tokenized instrument|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_PaymentRequestSource">PaymentRequestSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestsource"></a>
<a id="schema_PaymentRequestSource"></a>
<a id="tocSpaymentrequestsource"></a>
<a id="tocspaymentrequestsource"></a>

```json
{
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2030,
  "name": "Bruce Wayne",
  "cvv": "956",
  "stored": true,
  "store_for_future_use": false,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "account_holder": {},
  "allow_update": false,
  "type": "card"
}

```

The source of the payment

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestCardSource](#schemapaymentrequestcardsource)|false|none|A card payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestWeChatPaySource](#schemapaymentrequestwechatpaysource)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestVippsSource](#schemapaymentrequestvippssource)|false|none|Vipps Request Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestTwintSource](#schemapaymentrequesttwintsource)|false|none|Twint Request Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestTamaraSource](#schemapaymentrequesttamarasource)|false|none|A Tamara payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestStcPaySource](#schemapaymentrequeststcpaysource)|false|none|STC Pay request source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestSEPAV4Source](#schemapaymentrequestsepav4source)|false|none|SEPA DD Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestBacsSource](#schemapaymentrequestbacssource)|false|none|Bacs Direct Debit Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestSequraSource](#schemapaymentrequestsequrasource)|false|none|A seQura payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestQPaySource](#schemapaymentrequestqpaysource)|false|none|QPay Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestP24Source](#schemapaymentrequestp24source)|false|none|P24 Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestPlaidSource](#schemapaymentrequestplaidsource)|false|none|A Plaid source.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestPayNowSource](#schemapaymentrequestpaynowsource)|false|none|PayNow Request Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestOctopusPaySource](#schemapaymentrequestoctopuspaysource)|false|none|Octopus Pay Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestMultibancoSource](#schemapaymentrequestmultibancosource)|false|none|Multibanco Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestMobilePaySource](#schemapaymentrequestmobilepaysource)|false|none|MobilePay Request Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestMBWaySource](#schemapaymentrequestmbwaysource)|false|none|MBWay payment request source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestKnetSource](#schemapaymentrequestknetsource)|false|none|KNet Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestIdealSource](#schemapaymentrequestidealsource)|false|none|iDEAL Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestFawrySource](#schemapaymentrequestfawrysource)|false|none|Fawry Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestEpsSource](#schemapaymentrequestepssource)|false|none|EPS Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestBizumSource](#schemapaymentrequestbizumsource)|false|none|Bizum Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestBlikSource](#schemapaymentrequestbliksource)|false|none|Blik source. Use this to process Blik payments in Poland.<br><br>When `source.type` is `blik`:<br>  - `currency` must be `PLN`.<br>  - `amount` must not exceed `5000000` (in the [minor currency unit](https://www.checkout.com/docs/resources/calculating-the-amount)).<br>  - `reference` is limited to 35 characters.<br><br>For customer-initiated payments (`merchant_initiated: false`), provide the customer's 6-digit Blik code in `processing.partner_code`. This applies to one-off (`payment_type: Regular`) payments and to the initial payment of a recurring agreement (`payment_type: Recurring`).<br><br>For merchant-initiated recurring payments (`merchant_initiated: true`), use either:<br>  - `source.type: id` with a `source.id` value returned from a previous Blik recurring payment, or<br>  - `source.type: blik` with `partner_agreement_id` set to an external Blik PAYID created with another PSP.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestBancontactSource](#schemapaymentrequestbancontactsource)|false|none|Bancontact Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestAlmaSource](#schemapaymentrequestalmasource)|false|none|Alma payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestAlipayCnSource](#schemapaymentrequestalipaycnsource)|false|none|Alipay CN Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestAlipayHkSource](#schemapaymentrequestalipayhksource)|false|none|Alipay HK Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestAlipayPlusSource](#schemapaymentrequestalipayplussource)|false|none|Alipay Plus Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestDanaSource](#schemapaymentrequestdanasource)|false|none|Dana Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestGcashSource](#schemapaymentrequestgcashsource)|false|none|GCash Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestKakaopaySource](#schemapaymentrequestkakaopaysource)|false|none|Kakaopay Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestTngSource](#schemapaymentrequesttngsource)|false|none|TNG Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestTruemoneySource](#schemapaymentrequesttruemoneysource)|false|none|TrueMoney Source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestAchSource](#schemapaymentrequestachsource)|false|none|An ach payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestTokenSource](#schemapaymentrequesttokensource)|false|none|A token payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestNetworkTokenSource](#schemapaymentrequestnetworktokensource)|false|none|A network token payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestIdSource](#schemapaymentrequestidsource)|false|none|An existing payment source. Payment Method required for ACH payment|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestCustomerSource](#schemapaymentrequestcustomersource)|false|none|A customer source|

<h2 id="tocS_PaymentResponse">PaymentResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentresponse"></a>
<a id="schema_PaymentResponse"></a>
<a id="tocSpaymentresponse"></a>
<a id="tocspaymentresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "amount": 6540,
  "amount_requested": 6540,
  "currency": "USD",
  "approved": true,
  "status": "Authorized",
  "auth_code": "643381",
  "response_code": "10000",
  "response_summary": "Approved",
  "expires_on": "string",
  "3ds": {
    "downgraded": true,
    "enrolled": "N"
  },
  "risk": {
    "flagged": true,
    "score": 22
  },
  "source": {
    "type": "card",
    "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "expiry_month": 6,
    "expiry_year": 2025,
    "name": "Bruce Wayne",
    "scheme": "VISA",
    "scheme_local": "Cartes_Bancaires",
    "local_schemes": [
      "cartes_bancaires",
      "visa"
    ],
    "last4": "9996",
    "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
    "bin": "45434748",
    "card_type": "CREDIT",
    "card_category": "CONSUMER",
    "card_wallet_type": "applepay",
    "issuer": "GOTHAM STATE BANK",
    "issuer_country": "US",
    "product_id": "F",
    "product_type": "CLASSIC",
    "avs_check": "S",
    "cvv_check": "Y",
    "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
    "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
    "account_update_status": "card_updated",
    "account_update_failure_code": "VAU009",
    "account_holder": {}
  },
  "customer": {
    "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
    "email": "johnsmith@example.com",
    "name": "John Smith",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "balances": {
    "total_authorized": 6540,
    "total_voided": 0,
    "available_to_void": 6540,
    "total_captured": 0,
    "available_to_capture": 6540,
    "total_refunded": 0,
    "available_to_refund": 0
  },
  "processed_on": "2019-08-24T14:15:22Z",
  "reference": "ORD-5023-4E89",
  "subscription": {
    "id": "string"
  },
  "processing": {
    "retrieval_reference_number": "909913440644",
    "acquirer_transaction_id": "440644309099499894406",
    "recommendation_code": "02",
    "scheme": "string",
    "partner_merchant_advice_code": "string",
    "partner_response_code": "string",
    "partner_order_id": "5GK24544NA744002L",
    "partner_payment_id": "string",
    "partner_status": "string",
    "partner_transaction_id": "string",
    "partner_error_codes": [
      "string"
    ],
    "partner_error_message": "string",
    "partner_authorization_code": "string",
    "partner_authorization_response_code": "string",
    "surcharge_amount": 200,
    "pan_type_processed": "fpan",
    "fallback_source_used": false,
    "cko_network_token_available": false,
    "purchase_country": "GB",
    "foreign_retailer_amount": 200,
    "scheme_merchant_id": "123456",
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    },
    "scheme_transaction_link_id": "string"
  },
  "eci": "06",
  "scheme_id": "489341065491658",
  "retry": {
    "enabled": true,
    "max_attempts": 6,
    "ends_on": "2019-08-24T14:15:22Z",
    "next_attempt_on": "2019-08-24T14:15:22Z"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "actions": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
    },
    "authorize": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
    },
    "void": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/voids"
    },
    "capture": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/capture"
    },
    "cancel": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/cancel"
    }
  }
}

```

Payment Response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment's unique identifier|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the action performed against this payment|
|amount|integer|true|none|The payment amount.|
|amount_requested|integer|false|none|The full amount from the original authorization, if a partial authorization was requested and approved.|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the payment|
|approved|boolean|true|none|Whether or not the authorization or capture was successful|
|status|string|true|none|The status of the payment|
|auth_code|string|false|none|The acquirer authorization code if the payment was authorized|
|response_code|string|true|none|The Gateway response code|
|response_summary|string|false|none|The Gateway response summary|
|expires_on|string|false|none|The timestamp (ISO 8601 code) for when the authorization's validity period expires|
|3ds|[3dsEnrollmentData](#schema3dsenrollmentdata)|false|none|Provides 3D Secure enrollment status if the payment was downgraded to non-3D Secure|
|risk|object|false|none|Returns the payment's risk assessment results|
|» flagged|boolean|false|none|Whether or not the payment was flagged by a risk check|
|» score|number|false|none|The risk score calculated by our Fraud Detection engine. Absent if not enough data provided.|
|source|[PaymentResponseSource](#schemapaymentresponsesource)|false|none|The source of the payment|
|customer|[CustomerResponse](#schemacustomerresponse)|false|none|The customer associated with the payment, if provided in the request|
|balances|[PaymentResponseBalances](#schemapaymentresponsebalances)|false|none|The payment balances|
|processed_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the payment was processed|
|reference|string|false|none|Your reference for the payment|
|subscription|[Subscription](#schemasubscription)|false|none|The details of the subscription.|
|processing|object|false|none|Returns information related to the processing of the payment|
|» retrieval_reference_number|string|false|none|A unique identifier for the authorization that is submitted to the card scheme during processing|
|» acquirer_transaction_id|string|false|none|A unique identifier for the transaction generated by the acquirer|
|» recommendation_code|string|false|none|A <a href="https://www.checkout.com/docs/resources/codes/recommendation-codes" target="blank">code</a> representing the follow-up action to take with the payment, as recommended by Checkout.com|
|» scheme|string|false|none|The scheme the transaction was processed with|
|» partner_merchant_advice_code|string|false|none|The <a href="https://www.checkout.com/docs/developer-resources/codes/recommendation-codes#Mastercard_merchant_advice_codes" target="blank">Merchant Advice Code (MAC)</a> provided by Mastercard, which contains additional information about the transaction. <br><br>For example, the MAC can inform you if the transaction was performed using a consumer non-reloadable prepaid card or a consumer single-use virtual card. <br><br>For declined transactions, the MAC will also let you know whether the payment can be retried, and how long you should wait before doing so.|
|» partner_response_code|string|false|none|The original authorization response code sent by the scheme. This is also referred to as the <a href="https://www.checkout.com/docs/developer-resources/codes/api-response-codes#Raw_response_codes_(Beta)" target="blank">raw response code</a>. <br><br>This differs from the `recommendation_code` value, which is provided by Checkout.com and is standardized across all schemes.|
|» partner_order_id|string|false|none|Unique order identification of an Afterpay payment|
|» partner_payment_id|string|false|none|Unique identification of a payment provided by partner|
|» partner_status|string|false|none|Status of a payment provided by partner|
|» partner_transaction_id|string|false|none|Unique transaction identification provided by partner|
|» partner_error_codes|[string]|false|none|Error codes provided by partner|
|» partner_error_message|string|false|none|Error description provided by partner|
|» partner_authorization_code|string|false|none|Authorization code provided by partner|
|» partner_authorization_response_code|string|false|none|Authorization response code provided by partner|
|» surcharge_amount|integer(int64)|false|none|Surcharge amount applied to the transaction in minor units|
|» pan_type_processed|string|false|none|The type of Primary Account Number (PAN) used for the payment. DPAN indicates network token was used, FPAN indicates the full card was used|
|» fallback_source_used|boolean|false|none|Indicates whether the `fallback_source` field was used for the payment.|
|» cko_network_token_available|boolean|false|none|The flag indicating if Checkout Network Token was available for the payment|
|» purchase_country|string|false|none|The country where the purchase was made. <br/>Format – <a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="_blank">ISO alpha-2 country code</a>|
|» foreign_retailer_amount|integer|false|none|The foreign retailer amount the merchant applied to the transaction, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value).|
|» scheme_merchant_id|string|false|none|The merchant identifier that was configured with the scheme and used for the payment.|
|» reconciliation_id|string|false|none|The transaction identifier to track a payment request.|
|» aggregator|[Aggregator](#schemaaggregator)|false|none|Information about the payment aggregator.|
|» scheme_transaction_link_id|string|false|none|The scheme transaction link identifier.|
|eci|string|false|none|The final Electronic Commerce Indicator (ECI) security level used to authorize the payment. Applicable for 3D Secure and network token payments|
|scheme_id|string|false|none|The scheme transaction identifier|
|retry|[RetryPostResponse](#schemaretrypostresponse)|false|none|<span style="font-size: 14px; font-weight: 500; color: rgb(60, 4, 133); background-color: rgb(237, 222, 255); border-radius: 4px; padding: 2px 6px" >Beta</span><p>|
|_links|object|true|none|The links related to the payment|
|» self|[Link](#schemalink)|true|none|The URI of the payment|
|» actions|[Link](#schemalink)|true|none|A link to the payment's associated actions|
|» authorize|[Link](#schemalink)|false|none|A link to increment the authorization, where applicable|
|» void|[Link](#schemalink)|false|none|A link to void the payment, where applicable|
|» capture|[Link](#schemalink)|false|none|A link to capture the payment, where applicable|
|» refund|[Link](#schemalink)|false|none|A link to refund the payment, where applicable|
|» cancel|[Link](#schemalink)|false|none|A link to cancel the upcoming scheduled retry, where applicable.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Authorized|
|status|Pending|
|status|Card Verified|
|status|Declined|
|status|Retry Scheduled|
|pan_type_processed|fpan|
|pan_type_processed|dpan|

<h2 id="tocS_PaymentResponseBalances">PaymentResponseBalances</h2>
<!-- backwards compatibility -->
<a id="schemapaymentresponsebalances"></a>
<a id="schema_PaymentResponseBalances"></a>
<a id="tocSpaymentresponsebalances"></a>
<a id="tocspaymentresponsebalances"></a>

```json
{
  "total_authorized": 6540,
  "total_voided": 0,
  "available_to_void": 6540,
  "total_captured": 0,
  "available_to_capture": 6540,
  "total_refunded": 0,
  "available_to_refund": 0
}

```

The balances of the payment

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|total_authorized|integer|false|none|The total amount that has been authorized|
|total_voided|integer|false|none|The total amount that has been voided|
|available_to_void|integer|false|none|The total amount that is still available for voiding|
|total_captured|integer|false|none|The total amount that has been captured|
|available_to_capture|integer|false|none|The total amount that is still available for capture|
|total_refunded|integer|false|none|The total amount that has been refunded|
|available_to_refund|integer|false|none|The total amount that is still available for refund|

<h2 id="tocS_PaymentResponseDestination">PaymentResponseDestination</h2>
<!-- backwards compatibility -->
<a id="schemapaymentresponsedestination"></a>
<a id="schema_PaymentResponseDestination"></a>
<a id="tocSpaymentresponsedestination"></a>
<a id="tocspaymentresponsedestination"></a>

```json
{
  "type": "bank_account",
  "id": "string"
}

```

Payment destination

### Properties

*None*

<h2 id="tocS_PaymentResponseSource">PaymentResponseSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentresponsesource"></a>
<a id="schema_PaymentResponseSource"></a>
<a id="tocSpaymentresponsesource"></a>
<a id="tocspaymentresponsesource"></a>

```json
{
  "type": "card",
  "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "scheme": "VISA",
  "scheme_local": "Cartes_Bancaires",
  "local_schemes": [
    "cartes_bancaires",
    "visa"
  ],
  "last4": "9996",
  "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
  "bin": "45434748",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "card_wallet_type": "applepay",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "avs_check": "S",
  "cvv_check": "Y",
  "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
  "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
  "account_update_status": "card_updated",
  "account_update_failure_code": "VAU009",
  "account_holder": {}
}

```

Payment source in /payments successfully created response

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentResponseCardSource](#schemapaymentresponsecardsource)|false|none|A card payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentDeclinedSourceResponse](#schemapaymentdeclinedsourceresponse)|false|none|A source-based APM Declined payment source response|

<h2 id="tocS_PaymentReversalAcceptedResponse">PaymentReversalAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentreversalacceptedresponse"></a>
<a id="schema_PaymentReversalAcceptedResponse"></a>
<a id="tocSpaymentreversalacceptedresponse"></a>
<a id="tocspaymentreversalacceptedresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "reference": "ORD-5023-4E89",
  "action_type": "Refund",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

Reversal response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the payment reversal action.|
|reference|string|false|none|A unique reference for the payment reversal.|
|action_type|string|false|none|The payment action performed during the reversal. <br>Determined by the payment's state at the time of processing:<br> - `Refund` if the payment has been fully or partially captured<br> - `Void` if the payment is in an `Authorized` state.|
|_links|object|false|read-only|Links related to the payment reversal.|
|» payment|any|true|none|The URI of the payment to be reversed. <br><br>You can use this value to check the status of the payment reversal.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[Link](#schemalink)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|any|false|none|none|

<h2 id="tocS_PaymentReversalRequest">PaymentReversalRequest</h2>
<!-- backwards compatibility -->
<a id="schemapaymentreversalrequest"></a>
<a id="schema_PaymentReversalRequest"></a>
<a id="tocSpaymentreversalrequest"></a>
<a id="tocspaymentreversalrequest"></a>

```json
{
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|false|none|An internal reference to identify the payment reversal.<br><br>For American Express payment reversals, there is a 30-character limit.|
|metadata|object|false|none|Stores additional information about the transaction with custom fields.<br><br>You can only supply primitive data types with one level of depth. Fields of type `object` or `array` are not supported.|

<h2 id="tocS_PayoutBillingDescriptor">PayoutBillingDescriptor</h2>
<!-- backwards compatibility -->
<a id="schemapayoutbillingdescriptor"></a>
<a id="schema_PayoutBillingDescriptor"></a>
<a id="tocSpayoutbillingdescriptor"></a>
<a id="tocspayoutbillingdescriptor"></a>

```json
{
  "reference": "stringstrin"
}

```

Beneficiary banks typically construct the billing descriptor using the billing descriptor reference and sender information. For direct sellers, the sender is typically your entity’s legal company name. If the ultimate sender is provided, then it is the values of the Sender object.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|The reference shown on the beneficiary's bank statement.<br>Format – The length varies per beneficiary bank. In general, we recommend fewer than 11 characters.<br>Note – References are not supported in the US.|

<h2 id="tocS_PayoutDetails">PayoutDetails</h2>
<!-- backwards compatibility -->
<a id="schemapayoutdetails"></a>
<a id="schema_PayoutDetails"></a>
<a id="tocSpayoutdetails"></a>
<a id="tocspayoutdetails"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "requested_on": "2019-08-24T14:15:22Z",
  "source": {
    "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44",
    "type": "currency_account",
    "currency": "GBP",
    "amount": 1000
  },
  "destination": {
    "type": "bank_account",
    "id": "src_4pakgjwmv5re5m5ivqohsqpxnm"
  },
  "amount": 1000,
  "currency": "GBP",
  "reference": "PO-215-5721",
  "billing_descriptor": {
    "reference": "Withdrawal"
  },
  "status": "Pending",
  "approved": true,
  "sender": {
    "type": "individual",
    "reference": "8285282045818",
    "first_name": "John",
    "last_name": "Jones",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  },
  "instruction": {
    "value_date": "2020-06-13T01:49:19.1864428Z",
    "purpose": "Wallet Withdrawal",
    "quote_id": "qte_xrhaw53z5m6ehbbxz2n6n5lk74"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_gwlowf7eap7uzm4cyaaqoq62au"
    },
    "actions": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_gwlowf7eap7uzm4cyaaqoq62au/actions"
    }
  }
}

```

Payment response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|false|none|Payment unique identifier|
|requested_on|[ServerTimestamp](#schemaservertimestamp)|false|none|The date/time the payment was requested|
|source|object|false|none|The source of the payout|
|» id|string|false|none|The payment source identifier, which can be used for subsequent payments|
|» type|string|false|none|The payment source type. This is always `currency_account` for payouts.|
|» currency|string|false|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the payout source|
|» amount|integer|false|none|The amount paid out, in minor units, from the source currency account.|
|destination|object|false|none|The destination of the payout|
|» type|string|false|none|The payout destination type|
|» id|string|false|none|The payment instrument identifier|
|amount|integer|false|none|The original payout amount|
|currency|string|false|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="_blank">ISO currency code</a> of the payment|
|reference|string|false|none|Your reference for the payout|
|billing_descriptor|object|false|none|Details about the billing descriptor|
|» reference|string|false|none|The reference that is displayed on the account holder's statement|
|status|string|false|none|The status of the payout|
|approved|boolean|false|none|Whether the authorization was successful|
|sender|[PaymentDetailsResponseSender](#schemapaymentdetailsresponsesender)|false|none|Information about the sender of the payment's funds|
|instruction|object|false|none|Details about the instruction for payouts to bank accounts <br><i>The fields will depend on which ones were included in the request</i>.|
|» value_date|string|false|none|The date (in ISO 8601 format) on which the recipient's account will be credited|
|» purpose|string|false|none|An optional description of the payout purpose, like `Insurance_claim` or `Remittance`|
|» charge_bearer|string|false|none|Who should be charged the payout fee|
|» repair|boolean|false|none|Determines whether the payout details can be modified to attempt to prevent a payout from being returned|
|» scheme|string|false|none|The preferred payment scheme or network the bank transfer will be sent through|
|» quote_id|string|false|none|The FX quote identifier|
|_links|object|false|none|Links related to the payouts|
|» self|object|false|none|The direct link to the payout|
|»» href|string|false|none|The link URL|
|» actions|object|false|none|The link to the list of actions related to the payout|
|»» href|string|false|none|The link URL|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Pending|
|status|Paid|
|status|Declined|
|status|Returned|
|charge_bearer|OUR|
|charge_bearer|SHA|
|scheme|swift|
|scheme|local|
|scheme|instant|

<h2 id="tocS_PayoutSender">PayoutSender</h2>
<!-- backwards compatibility -->
<a id="schemapayoutsender"></a>
<a id="schema_PayoutSender"></a>
<a id="tocSpayoutsender"></a>
<a id="tocspayoutsender"></a>

```json
{
  "type": "instrument",
  "reference": "string"
}

```

The ultimate sender of the payout – that is, your customer.
Not supported for Platform or Direct Seller Checkout.com clients. 

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.|
|reference|string|true|none|A unique reference to the underlying client's customer. A global KYC requirement.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[03_PayoutRequestInstrumentSender](#schema03_payoutrequestinstrumentsender)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[01_PayoutRequestIndividualSender](#schema01_payoutrequestindividualsender)|false|none|Store a previously tokenized instrument|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[02_PayoutRequestCorporateSender](#schema02_payoutrequestcorporatesender)|false|none|Store a previously tokenized instrument|

#### Enumerated Values

|Property|Value|
|---|---|
|type|instrument|
|type|individual|
|type|corporate|

<h2 id="tocS_PlanInstallment">PlanInstallment</h2>
<!-- backwards compatibility -->
<a id="schemaplaninstallment"></a>
<a id="schema_PlanInstallment"></a>
<a id="tocSplaninstallment"></a>
<a id="tocsplaninstallment"></a>

```json
{
  "financing": false,
  "days_between_payments": 28,
  "total_number_of_payments": 5,
  "current_payment_number": 3,
  "expiry": "20251031",
  "name": "Subscription 1234",
  "start_date": "20260507",
  "amount": 1234
}

```

Installment

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» financing|boolean|false|none|If the installment plan has financing.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentPlan](#schemapaymentplan)|false|none|The details of a recurring subscription or installment `payment_plan`.|

<h2 id="tocS_PlanRecurring">PlanRecurring</h2>
<!-- backwards compatibility -->
<a id="schemaplanrecurring"></a>
<a id="schema_PlanRecurring"></a>
<a id="tocSplanrecurring"></a>
<a id="tocsplanrecurring"></a>

```json
{
  "amount_variability": "Variable",
  "days_between_payments": 28,
  "total_number_of_payments": 5,
  "current_payment_number": 3,
  "expiry": "20251031",
  "name": "Subscription 1234",
  "start_date": "20260507",
  "amount": 1234
}

```

Recurring

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» amount_variability|string|false|none|Specifies whether the amount is fixed or variable for each recurrence.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentPlan](#schemapaymentplan)|false|none|The details of a recurring subscription or installment `payment_plan`.|

#### Enumerated Values

|Property|Value|
|---|---|
|amount_variability|Fixed|
|amount_variability|Variable|

<h2 id="tocS_ProcessingData">ProcessingData</h2>
<!-- backwards compatibility -->
<a id="schemaprocessingdata"></a>
<a id="schema_ProcessingData"></a>
<a id="tocSprocessingdata"></a>
<a id="tocsprocessingdata"></a>

```json
{
  "preferred_scheme": "cartes_bancaires",
  "app_id": "com.iap.linker_portal",
  "airline_data": [
    {
      "ticket": {
        "number": "045-21351455613",
        "issue_date": "2023-05-20",
        "issuing_carrier_code": "AI",
        "travel_package_indicator": "B",
        "travel_agency_name": "World Tours",
        "travel_agency_code": "01"
      },
      "passenger": [
        {
          "first_name": "John",
          "last_name": "White",
          "date_of_birth": "1990-05-26",
          "address": {
            "country": "US"
          }
        }
      ],
      "flight_leg_details": [
        {
          "flight_number": "101",
          "carrier_code": "BA",
          "class_of_travelling": "J",
          "departure_airport": "LHR",
          "departure_date": "2023-06-19",
          "departure_time": "15:30",
          "arrival_airport": "LAX",
          "stop_over_code": "x",
          "fare_basis_code": "SPRSVR"
        }
      ]
    }
  ],
  "accommodation_data": [
    {
      "name": "The Sea View Hotel",
      "booking_reference": "HOTEL123",
      "check_in_date": "2023-06-20",
      "check_out_date": "2023-06-23",
      "address": {
        "address_line1": "123 Beach Road",
        "zip": "10001"
      },
      "state": "FL",
      "country": "USA",
      "city": "Los Angeles",
      "number_of_rooms": 2,
      "guests": [
        {
          "first_name": "Jane",
          "last_name": "Doe",
          "date_of_birth": "1985-07-14"
        }
      ],
      "room": [
        {
          "rate": "70",
          "number_of_nights_at_room_rate": "3"
        }
      ],
      "property_phone": [
        {
          "country_code": "44",
          "number": "7123456789"
        }
      ],
      "customer_service_phone": [
        {
          "country_code": "44",
          "number": "7123456789"
        }
      ]
    }
  ],
  "partner_customer_id": "2102209000001106125F8",
  "partner_payment_id": "440644309099499894406",
  "partner_code": "999111",
  "failure_code": "partner_error",
  "partner_response_code": "ER_WRONG_TICKET",
  "tax_amount": 1000,
  "locale": "en-US",
  "retrieval_reference_number": "909913440644",
  "partner_order_id": "string",
  "partner_status": "string",
  "partner_transaction_id": "string",
  "partner_error_codes": [
    "string"
  ],
  "partner_merchant_advice_code": "24",
  "partner_error_message": "string",
  "partner_authorization_code": "string",
  "partner_authorization_response_code": "string",
  "partner_fraud_status": "string",
  "pan_type_processed": "fpan",
  "fallback_source_used": false,
  "custom_payment_method_ids": [
    "string"
  ],
  "aft": true,
  "merchant_category_code": "5311",
  "scheme_merchant_id": "123456",
  "scheme": "ACCEL",
  "scheme_transaction_link_id": "string"
}

```

Returns information related to the processing of the payment

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|preferred_scheme|string|false|none|The preferred scheme for co-badged card payment processing. If performing 3DS via a third party, set this value to the scheme that processed 3DS. This field does not support PINless debit schemes in the US (STAR, PULSE, NYCE, ACCEL, SHAZAM).|
|app_id|string|false|none|The customer's application identifier.|
|airline_data|[AirlineData](#schemaairlinedata)|false|none|Contains information about the airline ticket and flights booked by the customer.|
|accommodation_data|[AccommodationData](#schemaaccommodationdata)|false|none|Contains information about the accommodation booked by the customer.|
|partner_customer_id|string|false|none|The customer's ID on the partner platform.|
|partner_payment_id|string|false|none|The partner-originated unique payment identifier|
|partner_code|string|false|none|The 6-digit partner code returned by the payment provider. Returned when `source.type` is `blik`.|
|failure_code|string|false|none|A high-level failure category returned by the payment provider when a payment is declined or fails. Not all payment methods return this field.|
|partner_response_code|string|false|none|The raw response code returned by the payment provider when a payment is declined or fails. Not all payment methods return this field.|
|tax_amount|number|false|none|Total tax amount of the order.|
|locale|string|false|none|The language and region of the customer. ISO 639-2 language code, its value consists of language-country|
|retrieval_reference_number|string|false|none|A unique identifier for the authorization provided by partner|
|partner_order_id|string|false|none|The Klarna order ID associated with the payment.|
|partner_status|string|false|none|Status of a payment provided by partner|
|partner_transaction_id|string|false|none|Unique transaction identification provided by partner|
|partner_error_codes|[string]|false|none|The list of error codes that led the payment to fail or be declined, as given by the payment provider|
|partner_merchant_advice_code|string|false|none|The <a href="https://www.checkout.com/docs/developer-resources/codes/recommendation-codes#Mastercard_merchant_advice_codes" target="blank">Merchant Advice Code (MAC)</a> provided by Mastercard, which contains additional information about the transaction. <br><br>For example, the MAC can inform you if the transaction was performed using a consumer non-reloadable prepaid card or a consumer single-use virtual card. <br><br>For declined transactions, the MAC will also let you know whether the payment can be retried, and how long you should wait before doing so.|
|partner_error_message|string|false|none|Error description provided by partner|
|partner_authorization_code|string|false|none|Authorization code provided by partner|
|partner_authorization_response_code|string|false|none|Authorization response code provided by partner|
|partner_fraud_status|string|false|none|Partner fraud status. If the status is Pending, and the Merchant captures before it changes to Accepted the risk of the transaction is solely of the merchant.|
|pan_type_processed|string|false|none|The type of Primary Account Number (PAN) used for the payment. DPAN indicates network token was used, FPAN indicates the full card was used|
|fallback_source_used|boolean|false|none|Indicates whether the `fallback_source` field was used for the payment.|
|custom_payment_method_ids|[string]|false|none|An array defining which of the configured payment options within a payment category (for example, `pay_later` or `pay_over_time`) should be displayed for this purchase.|
|aft|boolean|false|none|Indicates whether the payment is an [Account Funding Transaction](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions)|
|merchant_category_code|string|false|none|Four-digit code for retail financial services expressed in ISO 18245 format, classifying the types of goods or services you provide.|
|scheme_merchant_id|string|false|none|The merchant identifier that was configured with the scheme and used for the payment.|
|scheme|string|false|read-only|The scheme on which the payment was authorized. This may differ from the card's scheme used for the payment if the card is co-badged and the payment was authorized on a different network.|
|scheme_transaction_link_id|string|false|none|The scheme transaction link identifier.|

#### Enumerated Values

|Property|Value|
|---|---|
|preferred_scheme|mastercard|
|preferred_scheme|visa|
|preferred_scheme|cartes_bancaires|
|pan_type_processed|fpan|
|pan_type_processed|dpan|

<h2 id="tocS_RefundAcceptedResponse">RefundAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemarefundacceptedresponse"></a>
<a id="schema_RefundAcceptedResponse"></a>
<a id="tocSrefundacceptedresponse"></a>
<a id="tocsrefundacceptedresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "reference": "ORD-5023-4E89",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

Refund response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the refund action|
|reference|string|false|none|Your reference for the refund request|
|_links|object|false|read-only|The links related to the refund|
|» payment|[Link](#schemalink)|true|none|The URI of the payment to be refunded. Use this to check the status of the payment|

<h2 id="tocS_RefundBankAccountDestination">RefundBankAccountDestination</h2>
<!-- backwards compatibility -->
<a id="schemarefundbankaccountdestination"></a>
<a id="schema_RefundBankAccountDestination"></a>
<a id="tocSrefundbankaccountdestination"></a>
<a id="tocsrefundbankaccountdestination"></a>

```json
{
  "account_type": "savings",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "iban": "HU93116000060000000012345676",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "country": "GB",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Test company",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "passport",
      "number": "09876",
      "issuing_country": "US"
    },
    "email": "test.user@checkout.com"
  },
  "bank": {
    "name": "Lloyds TSB",
    "branch": "Bournemouth",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    }
  }
}

```

The destination of the refund. 

This field is required for giropay and EPS refunds.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_type|string|false|none|The type of account to which the refund will be sent.|
|account_number|string|true|none|The account number.|
|bank_code|string|true|none|The code that identifies the bank.|
|branch_code|string|false|none|The code that identifies the bank branch.|
|iban|string|false|none|The account's International Bank Account Number (IBAN).|
|bban|string|false|none|The account's Basic Bank Account Number (BBAN). <br><br>The BBAN is a combination of the account number and the bank or branch code, or both.|
|swift_bic|string|false|none|An 8 or 11-digit code that identifies the bank or bank branch.|
|country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the country where the account is based.|
|account_holder|[RefundDestinationAccountHolder](#schemarefunddestinationaccountholder)|true|none|The account holder details.|
|bank|[BankDetails](#schemabankdetails)|false|none|Details of the bank|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|current|
|account_type|cash|

<h2 id="tocS_RefundDestinationAccountHolder">RefundDestinationAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemarefunddestinationaccountholder"></a>
<a id="schema_RefundDestinationAccountHolder"></a>
<a id="tocSrefunddestinationaccountholder"></a>
<a id="tocsrefunddestinationaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "John",
  "last_name": "Smith",
  "company_name": "Test company",
  "tax_id": "123456",
  "date_of_birth": "1986-01-01",
  "country_of_birth": "GB",
  "residential_status": "resident",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "identification": {
    "type": "passport",
    "number": "09876",
    "issuing_country": "US"
  },
  "email": "test.user@checkout.com"
}

```

The account holder details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The account holder type.|
|first_name|string|true|none|The account holder's first name.|
|last_name|string|true|none|The account holder's last name.|
|company_name|string|false|none|The corporate account holder's company name.|
|tax_id|string|false|none|The account holder's tax number or reference.|
|date_of_birth|string(date)|false|none|The account holder's date of birth,  in the format `YYYY-MM-DD`.|
|country_of_birth|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the account holder's country of birth.|
|residential_status|string|false|none|The account holder's residential status.|
|billing_address|[Address](#schemaaddress)|false|none|The account holder's billing address.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The account holder's phone number.|
|identification|[AccountHolderIdentification](#schemaaccountholderidentification)|false|none|Bank account holder's proof of identification|
|email|string(email)|false|none|The account holder's email address.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|government|
|residential_status|resident|
|residential_status|non_resident|

<h2 id="tocS_RefundRequest">RefundRequest</h2>
<!-- backwards compatibility -->
<a id="schemarefundrequest"></a>
<a id="schema_RefundRequest"></a>
<a id="tocSrefundrequest"></a>
<a id="tocsrefundrequest"></a>

```json
{
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "amount_allocations": [
    {
      "id": "ent_w4jelhppmfiufdnatam37wrfc4",
      "amount": 1000,
      "reference": "ORD-5023-4E89",
      "commission": {
        "amount": 1000,
        "percentage": 1.125
      }
    }
  ],
  "capture_action_id": "act_fd3h6evhpn3uxdoqbuu3lqnqbm",
  "items": [
    {
      "type": "digital",
      "sub_type": "stablecoin",
      "name": "Necklace",
      "quantity": 2,
      "unit_price": 50,
      "reference": "858818ac",
      "commodity_code": "DEF123",
      "unit_of_measure": "metres",
      "total_amount": 29000,
      "tax_rate": 2000,
      "tax_amount": 1000,
      "tax_exempt": true,
      "discount_amount": 1000,
      "wxpay_goods_id": "1001",
      "url": "string",
      "image_url": "string",
      "service_ends_on": "2025-01-01",
      "purchase_country": "GB",
      "foreign_retailer_amount": 200
    }
  ],
  "destination": {
    "account_type": "savings",
    "account_number": "13654567455",
    "bank_code": "123-456",
    "branch_code": "6443",
    "iban": "HU93116000060000000012345676",
    "bban": "3704 0044 0532 0130 00",
    "swift_bic": "37040044",
    "country": "GB",
    "account_holder": {
      "type": "individual",
      "first_name": "John",
      "last_name": "Smith",
      "company_name": "Test company",
      "tax_id": "123456",
      "date_of_birth": "1986-01-01",
      "country_of_birth": "GB",
      "residential_status": "resident",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "identification": {
        "type": "passport",
        "number": "09876",
        "issuing_country": "US"
      },
      "email": "test.user@checkout.com"
    },
    "bank": {
      "name": "Lloyds TSB",
      "branch": "Bournemouth",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    }
  },
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer|false|none|The amount to refund. If not specified, the full payment amount will be refunded.|
|reference|string|false|none|A reference you can later use to identify this refund request.<br>For Amex, the string limit is 30 characters. <br> For TWINT, the string limit is 50 characters.|
|amount_allocations|[AmountAllocations](#schemaamountallocations)|false|none|The sub-entities that the payment is being processed on behalf of|
|capture_action_id|string|false|none|The Checkout.com action ID of the capture you want to refund. Only for PayPal and Riverty.|
|items|[Items](#schemaitems)|false|none|The order's line items.|
|destination|[RefundBankAccountDestination](#schemarefundbankaccountdestination)|false|none|The destination of the refund. <br><br>This field is required for giropay and EPS refunds.|
|metadata|object|false|none|A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. <br><br>The `metadata` object only supports primitive data types. Objects and arrays are not supported.|

<h2 id="tocS_01_PayoutRequestIndividualAccountHolder">01_PayoutRequestIndividualAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schema01_payoutrequestindividualaccountholder"></a>
<a id="schema_01_PayoutRequestIndividualAccountHolder"></a>
<a id="tocS01_payoutrequestindividualaccountholder"></a>
<a id="tocs01_payoutrequestindividualaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "John",
  "last_name": "Smith",
  "tax_id": "123456",
  "date_of_birth": "1986-01-01",
  "country_of_birth": "GB",
  "residential_status": "resident",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "identification": {
    "type": "SSN",
    "issuing_country": "string",
    "number": "string"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the legal account holder.|
|first_name|string|true|none|The <b>legal</b> first name of the account holder.|
|last_name|string|true|none|The <b>legal</b> last name of the account holder.|
|tax_id|string|false|none|The <b>legal</b> account holder's tax number or reference.|
|date_of_birth|string(date)|false|none|The account holder's date of birth in a `YYYY-MM-DD` format. Strongly recommended where available.|
|country_of_birth|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the account holder's country of birth.|
|residential_status|string|false|none|The account holder's residential status.|
|billing_address|[Address](#schemaaddress)|true|none|The current billing address associated with the destination account. Required for payouts to individuals. Strongly recommended when available.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the account holder.|
|identification|object|false|none|The account holder's government document identification. For example, the social security number (SSN).|
|» type|string|false|none|The document type|
|» issuing_country|string|false|none|The country where the document was issued|
|» number|string|false|none|The document number|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|government|
|residential_status|resident|
|residential_status|non_resident|

<h2 id="tocS_02_PayoutRequestCorporateAccountHolder">02_PayoutRequestCorporateAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schema02_payoutrequestcorporateaccountholder"></a>
<a id="schema_02_PayoutRequestCorporateAccountHolder"></a>
<a id="tocS02_payoutrequestcorporateaccountholder"></a>
<a id="tocs02_payoutrequestcorporateaccountholder"></a>

```json
{
  "type": "corporate",
  "company_name": "Test company",
  "tax_id": "123456",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the legal account holder.|
|company_name|string|true|none|The full <b>legal</b> name of a registered company that holds the account.|
|tax_id|string|false|none|The <b>legal</b> account holder's tax number or reference.|
|billing_address|[Address](#schemaaddress)|false|none|The current billing address associated with the destination account. Strongly recommended when available.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|government|

<h2 id="tocS_03_PayoutRequestGovernmentAccountHolder">03_PayoutRequestGovernmentAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schema03_payoutrequestgovernmentaccountholder"></a>
<a id="schema_03_PayoutRequestGovernmentAccountHolder"></a>
<a id="tocS03_payoutrequestgovernmentaccountholder"></a>
<a id="tocs03_payoutrequestgovernmentaccountholder"></a>

```json
{
  "type": "government",
  "company_name": "Test company",
  "tax_id": "123456",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the legal account holder.|
|company_name|string|true|none|The full <b>legal</b> name of a registered company that holds the account.|
|tax_id|string|false|none|The <b>legal</b> account holder's tax number or reference.|
|billing_address|[Address](#schemaaddress)|false|none|The current billing address associated with the destination account. Strongly recommended when available.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|government|

<h2 id="tocS_PaymentBankAccountDestination">PaymentBankAccountDestination</h2>
<!-- backwards compatibility -->
<a id="schemapaymentbankaccountdestination"></a>
<a id="schema_PaymentBankAccountDestination"></a>
<a id="tocSpaymentbankaccountdestination"></a>
<a id="tocspaymentbankaccountdestination"></a>

```json
{
  "type": "bank_account",
  "country": "GB",
  "iban": "HU93116000060000000012345676",
  "account_number": "13654567455",
  "bank_code": "123-456",
  "branch_code": "6443",
  "bban": "3704 0044 0532 0130 00",
  "swift_bic": "37040044",
  "account_type": "savings",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  }
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout destination type.|
|country|string|true|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of where the account is based. Note that not all countries are available, see our <a href="https://www.checkout.com/docs/payments/request-payouts/bank-payouts/payout-formatting" target="_blank">docs</a> for details.|
|iban|string|false|none|Internationally agreed standard for identifying bank accounts. Lengths vary per `destination_country`. See the <a href="https://www.iban.com/glossary" target="_blank">glossary</a> for details.|
|account_number|string|false|none|Number (which can contain letters) that identifies the local account.|
|bank_code|string|false|none|Code that identifies the bank. Also referred as Routing Number in the United States.|
|branch_code|string|false|none|Code that identifies the bank branch.|
|bban|string|false|none|The combination of bank code and/or branch code and account number.|
|swift_bic|string|false|none|8 or 11 character code which identifies the bank or bank branch.|
|account_type|string|true|none|The type of the bank account. <b>Note:</b> that some beneficiary banks do not accept payouts to savings accounts.|
|account_holder|[AccountHolder](#schemaaccountholder)|false|none|The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|current|
|account_type|cash|

<h2 id="tocS_PaymentRequestIdDestination">PaymentRequestIdDestination</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestiddestination"></a>
<a id="schema_PaymentRequestIdDestination"></a>
<a id="tocSpaymentrequestiddestination"></a>
<a id="tocspaymentrequestiddestination"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout destination type.|
|id|string|true|none|The existing payment instrument's identifier. It is advisable that payment instruments are reused, <i>see the <a href="https://api-reference.checkout.com/#operation/createAnInstrument" target="_blank">documentation</a> for more information.</i>|

<h2 id="tocS_01_PaymentRequestIndividualSender">01_PaymentRequestIndividualSender</h2>
<!-- backwards compatibility -->
<a id="schema01_paymentrequestindividualsender"></a>
<a id="schema_01_PaymentRequestIndividualSender"></a>
<a id="tocS01_paymentrequestindividualsender"></a>
<a id="tocs01_paymentrequestindividualsender"></a>

```json
{
  "type": "individual",
  "reference": "string",
  "first_name": "John",
  "last_name": "Jones",
  "date_of_birth": "1985-05-15",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "identification": {
    "type": "driving_licence",
    "number": "1234",
    "issuing_country": "GT"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.|
|reference|string|false|none|The unique reference for the sender of the payment.|
|first_name|string|true|none|The sender's first name|
|last_name|string|true|none|The sender's last name|
|date_of_birth|string(date)|false|none|The sender's date of birth (yyyy-mm-dd)|
|address|[Address](#schemaaddress)|true|none|The sender's address|
|identification|object|false|none|none|
|» type|string|false|none|The type of identification used to identify the sender|
|» number|string|false|none|The identification number|
|» issuing_country|string|false|none|The two-letter ISO country code of the country that issued the identification|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|
|type|passport|
|type|driving_licence|
|type|national_id|

<h2 id="tocS_01_PayoutRequestIndividualSender">01_PayoutRequestIndividualSender</h2>
<!-- backwards compatibility -->
<a id="schema01_payoutrequestindividualsender"></a>
<a id="schema_01_PayoutRequestIndividualSender"></a>
<a id="tocS01_payoutrequestindividualsender"></a>
<a id="tocs01_payoutrequestindividualsender"></a>

```json
{
  "type": "individual",
  "reference": "string",
  "first_name": "John",
  "last_name": "Jones",
  "dob": "1985-05-15",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "identification": {
    "type": "driving_licence",
    "number": "1234",
    "issuing_country": "GT"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.|
|reference|string|true|none|A unique reference to the underlying client's customer. A global KYC requirement.|
|first_name|string|true|none|The <b>legal</b> first name of the ultimate sender.|
|last_name|string|true|none|The <b>legal</b> last name of the ultimate sender.|
|dob|string(date)|false|none|The sender's date of birth in a `YYYY-MM-DD` format. Strongly recommended where available.|
|address|[Address](#schemaaddress)|true|none|The sender's address.|
|identification|object|false|none|none|
|» type|string|false|none|The type of identification used to identify the sender.|
|» number|string|false|none|The identification number.|
|» issuing_country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> that issued the identification.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|instrument|
|type|individual|
|type|corporate|
|type|passport|
|type|driving_licence|
|type|national_id|

<h2 id="tocS_02_PaymentRequestCorporateSender">02_PaymentRequestCorporateSender</h2>
<!-- backwards compatibility -->
<a id="schema02_paymentrequestcorporatesender"></a>
<a id="schema_02_PaymentRequestCorporateSender"></a>
<a id="tocS02_paymentrequestcorporatesender"></a>
<a id="tocs02_paymentrequestcorporatesender"></a>

```json
{
  "type": "corporate",
  "reference": "string",
  "company_name": "string",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.|
|reference|string|false|none|The unique reference for the sender of the payment.|
|company_name|string|true|none|The sender's company name|
|address|[Address](#schemaaddress)|true|none|The sender's address|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_02_PayoutRequestCorporateSender">02_PayoutRequestCorporateSender</h2>
<!-- backwards compatibility -->
<a id="schema02_payoutrequestcorporatesender"></a>
<a id="schema_02_PayoutRequestCorporateSender"></a>
<a id="tocS02_payoutrequestcorporatesender"></a>
<a id="tocs02_payoutrequestcorporatesender"></a>

```json
{
  "type": "corporate",
  "reference": "string",
  "company_name": "string",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.|
|reference|string|true|none|A unique reference to the underlying client's customer. A global KYC requirement.|
|company_name|string|true|none|The sender's company name|
|address|[Address](#schemaaddress)|true|none|The sender's address|

#### Enumerated Values

|Property|Value|
|---|---|
|type|instrument|
|type|individual|
|type|corporate|

<h2 id="tocS_03_PaymentRequestInstrumentSender">03_PaymentRequestInstrumentSender</h2>
<!-- backwards compatibility -->
<a id="schema03_paymentrequestinstrumentsender"></a>
<a id="schema_03_PaymentRequestInstrumentSender"></a>
<a id="tocS03_paymentrequestinstrumentsender"></a>
<a id="tocs03_paymentrequestinstrumentsender"></a>

```json
{
  "type": "instrument",
  "reference": "string"
}

```

instrument

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.|
|reference|string|false|none|The unique reference for the sender of the payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_03_PayoutRequestInstrumentSender">03_PayoutRequestInstrumentSender</h2>
<!-- backwards compatibility -->
<a id="schema03_payoutrequestinstrumentsender"></a>
<a id="schema_03_PayoutRequestInstrumentSender"></a>
<a id="tocS03_payoutrequestinstrumentsender"></a>
<a id="tocs03_payoutrequestinstrumentsender"></a>

```json
{
  "type": "instrument",
  "reference": "string"
}

```

instrument

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.|
|reference|string|true|none|A unique reference to the underlying client's customer. A global KYC requirement.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|instrument|
|type|individual|
|type|corporate|

<h2 id="tocS_PaymentRequestAchSource">PaymentRequestAchSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestachsource"></a>
<a id="schema_PaymentRequestAchSource"></a>
<a id="tocSpaymentrequestachsource"></a>
<a id="tocspaymentrequestachsource"></a>

```json
{
  "account_type": "savings",
  "country": "US",
  "account_number": "136549956",
  "bank_code": "021000021",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "company_name": "Test company",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "date_of_birth": "string",
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "type": "ach"
}

```

ach

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_type|string|true|none|The type of Direct Debit account|
|country|string|true|none|The source country|
|account_number|string|true|none|The account number of the Direct Debit account|
|bank_code|string|true|none|The bank code of the Direct Debit account|
|account_holder|[AccountHolderAch](#schemaaccountholderach)|true|none|The account holder details|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|checking|
|account_type|cash|
|*anonymous*|ach|

<h2 id="tocS_PaymentRequestAlipayCnSource">PaymentRequestAlipayCnSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestalipaycnsource"></a>
<a id="schema_PaymentRequestAlipayCnSource"></a>
<a id="tocSpaymentrequestalipaycnsource"></a>
<a id="tocspaymentrequestalipaycnsource"></a>

```json
{
  "type": "alipay_cn"
}

```

alipay_cn

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|alipay_cn|

<h2 id="tocS_PaymentRequestAlipayHkSource">PaymentRequestAlipayHkSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestalipayhksource"></a>
<a id="schema_PaymentRequestAlipayHkSource"></a>
<a id="tocSpaymentrequestalipayhksource"></a>
<a id="tocspaymentrequestalipayhksource"></a>

```json
{
  "type": "alipay_hk"
}

```

alipay_hk

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|alipay_hk|

<h2 id="tocS_PaymentRequestAlipayPlusSource">PaymentRequestAlipayPlusSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestalipayplussource"></a>
<a id="schema_PaymentRequestAlipayPlusSource"></a>
<a id="tocSpaymentrequestalipayplussource"></a>
<a id="tocspaymentrequestalipayplussource"></a>

```json
{
  "type": "alipay_plus"
}

```

alipay_plus

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|alipay_plus|

<h2 id="tocS_PaymentRequestAlmaSource">PaymentRequestAlmaSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestalmasource"></a>
<a id="schema_PaymentRequestAlmaSource"></a>
<a id="tocSpaymentrequestalmasource"></a>
<a id="tocspaymentrequestalmasource"></a>

```json
{
  "type": "alma",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

alma

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|billing_address|any|false|none|The billing address of the cardholder|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[Address](#schemaaddress)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|object|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|alma|

<h2 id="tocS_PaymentRequestBacsSource">PaymentRequestBacsSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestbacssource"></a>
<a id="schema_PaymentRequestBacsSource"></a>
<a id="tocSpaymentrequestbacssource"></a>
<a id="tocspaymentrequestbacssource"></a>

```json
{
  "type": "bacs",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu"
}

```

bacs

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The Bacs Direct Debit instrument ID.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bacs|

<h2 id="tocS_PaymentRequestBancontactSource">PaymentRequestBancontactSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestbancontactsource"></a>
<a id="schema_PaymentRequestBancontactSource"></a>
<a id="tocSpaymentrequestbancontactsource"></a>
<a id="tocspaymentrequestbancontactsource"></a>

```json
{
  "payment_country": "BE",
  "account_holder_name": "string",
  "billing_descriptor": "string",
  "language": "nl",
  "type": "bancontact"
}

```

bancontact

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_country|string|true|none|The 2-letter ISO country code of the country in which the payment instrument is issued/operated.|
|account_holder_name|string|true|none|The account holder.|
|billing_descriptor|string|false|none|Payment billing descriptor.|
|language|string|false|none|The 2-letter ISO language code that should be preferred when presenting payment pages to the consumer.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_country|BE|
|language|fr|
|language|nl|
|language|de|
|language|en|
|*anonymous*|bancontact|

<h2 id="tocS_PaymentRequestBizumSource">PaymentRequestBizumSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestbizumsource"></a>
<a id="schema_PaymentRequestBizumSource"></a>
<a id="tocSpaymentrequestbizumsource"></a>
<a id="tocspaymentrequestbizumsource"></a>

```json
{
  "type": "bizum"
}

```

bizum

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|bizum|

<h2 id="tocS_PaymentRequestBlikSource">PaymentRequestBlikSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestbliksource"></a>
<a id="schema_PaymentRequestBlikSource"></a>
<a id="tocSpaymentrequestbliksource"></a>
<a id="tocspaymentrequestbliksource"></a>

```json
{
  "type": "blik",
  "partner_agreement_id": "blik_payid_123456789"
}

```

blik

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|partner_agreement_id|string|false|none|The Blik PAYID identifying an external partner agreement created with another PSP.<br><br>Only used when processing merchant-initiated recurring payments (`merchant_initiated: true`) without a stored Checkout.com source.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|blik|

<h2 id="tocS_PaymentRequestCardSource">PaymentRequestCardSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestcardsource"></a>
<a id="schema_PaymentRequestCardSource"></a>
<a id="tocSpaymentrequestcardsource"></a>
<a id="tocspaymentrequestcardsource"></a>

```json
{
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2030,
  "name": "Bruce Wayne",
  "cvv": "956",
  "stored": true,
  "store_for_future_use": false,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "account_holder": {},
  "allow_update": false,
  "type": "card"
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number|string|true|none|The card number (without separators)|
|expiry_month|integer|true|none|The expiry month of the card|
|expiry_year|integer|true|none|4-digit expiry year of the card|
|name|string|false|none|The name of the cardholder|
|cvv|string|false|none|The card verification value/code. 3 digits, except for American Express (4 digits)|
|stored|boolean|false|none|Indicates whether this card is being submitted from your own stored card-on-file system, rather than being entered by the customer at the time of payment. Set to `true` when you provide card details that you already have on file for the customer.|
|store_for_future_use|boolean|false|none|This must be set to true if you intend to reuse the payment credentials in subsequent payments. Setting the field as false will mean that a <a href="https://www.checkout.com/docs/payments/store-payment-details/payment-instruments" target="blank">payment instrument</a> will not be included in the payment response.|
|billing_address|[Address](#schemaaddress)|false|none|The billing address of the cardholder|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the cardholder|
|account_holder|object|false|none|Information about the account holder of the card|
|allow_update|boolean|false|none|Specifies whether to use the <a href="https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/real-time-account-updater">Real-Time Account Updater</a> to update the card information.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|

<h2 id="tocS_PaymentRequestCustomerSource">PaymentRequestCustomerSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestcustomersource"></a>
<a id="schema_PaymentRequestCustomerSource"></a>
<a id="tocSpaymentrequestcustomersource"></a>
<a id="tocspaymentrequestcustomersource"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "account_holder": {},
  "allow_update": false,
  "type": "customer"
}

```

customer

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The customer's identifier.|
|billing_address|[Address](#schemaaddress)|false|none|The cardholder's billing address.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The cardholder's phone number.|
|account_holder|object|false|none|Information about the account holder of the customer's default payment instrument|
|allow_update|boolean|false|none|Specifies whether to use the <a href="https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/real-time-account-updater">Real-Time Account Updater</a> to update the card information.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|customer|

<h2 id="tocS_PaymentRequestDanaSource">PaymentRequestDanaSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestdanasource"></a>
<a id="schema_PaymentRequestDanaSource"></a>
<a id="tocSpaymentrequestdanasource"></a>
<a id="tocspaymentrequestdanasource"></a>

```json
{
  "type": "dana"
}

```

dana

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|dana|

<h2 id="tocS_PaymentRequestEpsSource">PaymentRequestEpsSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestepssource"></a>
<a id="schema_PaymentRequestEpsSource"></a>
<a id="tocSpaymentrequestepssource"></a>
<a id="tocspaymentrequestepssource"></a>

```json
{
  "type": "eps",
  "purpose": "string",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith"
  }
}

```

eps

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|purpose|string|true|none|Purpose of the payment as appearing on customer's bank statement.|
|account_holder|[AccountHolderEps](#schemaaccountholdereps)|false|none|The account holder details|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|eps|

<h2 id="tocS_PaymentRequestFallbackSource">PaymentRequestFallbackSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestfallbacksource"></a>
<a id="schema_PaymentRequestFallbackSource"></a>
<a id="tocSpaymentrequestfallbacksource"></a>
<a id="tocspaymentrequestfallbacksource"></a>

```json
{
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2030,
  "name": "Bruce Wayne",
  "cvv": "956",
  "stored": true,
  "store_for_future_use": false,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "account_holder": {},
  "allow_update": false,
  "type": "card"
}

```

A card payment source

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number|string|true|none|The card number (without separators)|
|expiry_month|integer|true|none|The expiry month of the card|
|expiry_year|integer|true|none|4-digit expiry year of the card|
|name|string|false|none|The name of the cardholder|
|cvv|string|false|none|The card verification value/code. 3 digits, except for American Express (4 digits)|
|stored|boolean|false|none|Indicates whether this card is being submitted from your own stored card-on-file system, rather than being entered by the customer at the time of payment. Set to `true` when you provide card details that you already have on file for the customer.|
|store_for_future_use|boolean|false|none|This must be set to true if you intend to reuse the payment credentials in subsequent payments. Setting the field as false will mean that a <a href="https://www.checkout.com/docs/payments/store-payment-details/payment-instruments" target="blank">payment instrument</a> will not be included in the payment response.|
|billing_address|[Address](#schemaaddress)|false|none|The billing address of the cardholder|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the cardholder|
|account_holder|object|false|none|Information about the account holder of the card|
|allow_update|boolean|false|none|Specifies whether to use the <a href="https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/real-time-account-updater">Real-Time Account Updater</a> to update the card information.|
|type|string|true|none|The payment source type.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|

<h2 id="tocS_PaymentRequestFawrySource">PaymentRequestFawrySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestfawrysource"></a>
<a id="schema_PaymentRequestFawrySource"></a>
<a id="tocSpaymentrequestfawrysource"></a>
<a id="tocspaymentrequestfawrysource"></a>

```json
{
  "description": "string",
  "customer_profile_id": "string",
  "customer_email": "string",
  "customer_mobile": "string",
  "expires_on": "2019-08-24T14:15:22Z",
  "products": [
    {
      "product_id": "string",
      "quantity": 0,
      "price": 0,
      "description": "string"
    }
  ],
  "type": "fawry"
}

```

fawry

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|true|none|The payment description.|
|customer_profile_id|string|false|none|The customer's id within merchant's system.|
|customer_email|string|true|none|The customer's email address.|
|customer_mobile|string|true|none|The customer's mobile phone number.|
|expires_on|string(date-time)|false|none|The date on which the payment expires.|
|products|[object]|true|none|List of Products|
|» product_id|string|true|none|The id of the product.|
|» quantity|integer|true|none|The quantity of the product.|
|» price|integer|true|none|The price of the item.  Expressed using Checkout.com's standard rules for calculating payment values.|
|» description|string|true|none|The description of the product.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|fawry|

<h2 id="tocS_PaymentRequestGcashSource">PaymentRequestGcashSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestgcashsource"></a>
<a id="schema_PaymentRequestGcashSource"></a>
<a id="tocSpaymentrequestgcashsource"></a>
<a id="tocspaymentrequestgcashsource"></a>

```json
{
  "type": "gcash"
}

```

gcash

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|gcash|

<h2 id="tocS_PaymentRequestIdealSource">PaymentRequestIdealSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestidealsource"></a>
<a id="schema_PaymentRequestIdealSource"></a>
<a id="tocSpaymentrequestidealsource"></a>
<a id="tocspaymentrequestidealsource"></a>

```json
{
  "description": "string",
  "language": "st",
  "type": "ideal"
}

```

ideal

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|description|string|true|none|Description of the product(s) or services being paid for.  This field must not contain characters that can lead to problems (for example those occurring in HTML editing codes).  To prevent any possible errors most iDEAL systems will reject any description that contains HTML-tags and such other code.|
|language|string|false|none|This field enables the issuer's site to select the consumer's preferred language.<br>For example, the language selected on the merchant's site – if the issuer's site supports it.  Code list in accordance with ISO 639-1. (Dutch = 'nl', English = 'en'). <br><br>If a non-supported or non-existing language is entered, the standard language of the issuer is used. Because not all issuers support other languages, it is recommended to send 'nl' by default.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|ideal|

<h2 id="tocS_PaymentRequestIdSource">PaymentRequestIdSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestidsource"></a>
<a id="schema_PaymentRequestIdSource"></a>
<a id="tocSpaymentrequestidsource"></a>
<a id="tocspaymentrequestidsource"></a>

```json
{
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "cvv": "956",
  "payment_method": "ach",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "account_holder": {},
  "allow_update": false,
  "type": "id"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The payment source identifier (e.g., a card source identifier)|
|cvv|string|false|none|The card verification value (CVV) or code, if the source is a card. The expected format varies:<br><br>- for American Express cards, this should be a 4-digit code<br>- for other cards, this should be a 3-digit code<br>- for Checkout.com CVV tokens, this should be an ID value with the prefix `tok_`|
|payment_method|string|false|none|The payment method. Payment Method required for ACH payment|
|billing_address|[Address](#schemaaddress)|false|none|The cardholder's billing address.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The cardholder's phone number.|
|account_holder|object|false|none|Information about the account holder of the payment instrument|
|allow_update|boolean|false|none|Specifies whether to use the <a href="https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/real-time-account-updater">Real-Time Account Updater</a> to update the card information.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|id|

<h2 id="tocS_PaymentRequestKakaopaySource">PaymentRequestKakaopaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestkakaopaysource"></a>
<a id="schema_PaymentRequestKakaopaySource"></a>
<a id="tocSpaymentrequestkakaopaysource"></a>
<a id="tocspaymentrequestkakaopaysource"></a>

```json
{
  "type": "kakaopay"
}

```

kakaopay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|kakaopay|

<h2 id="tocS_PaymentRequestKnetSource">PaymentRequestKnetSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestknetsource"></a>
<a id="schema_PaymentRequestKnetSource"></a>
<a id="tocSpaymentrequestknetsource"></a>
<a id="tocspaymentrequestknetsource"></a>

```json
{
  "type": "knet",
  "language": "ar",
  "user_defined_field1": "string",
  "user_defined_field2": "string",
  "user_defined_field3": "string",
  "user_defined_field4": "string",
  "user_defined_field5": "string",
  "card_token": "string",
  "ptlf": "string",
  "token_type": "applepay",
  "token_data": {
    "version": "EC_v1",
    "data": "t7GeajLB9skXB6QSWfEpPA4WPhDqB7ekdd+F7588arLzvebKp3P0TekUslSQ8nkuacUgLdks2IKyCm7U3OL/PEYLXE7w60VkQ8WE6FXs/cqHkwtSW9vkzZNDxSLDg9slgLYxAH2/iztdipPpyIYKl0Kb6Rn9rboF+lwgRxM1B3n84miApwF5Pxl8ZOOXGY6F+3DsDo7sMCUTaJK74DUJJcjIXrigtINWKW6RFa/4qmPEC/Y+syg04x7B99mbLQQzWFm7z6HfRmynPM9/GA0kbsqd/Kn5Mkqssfhn/m6LuNKsqEmbKi85FF6kip+F17LRawG48bF/lT8wj/QEuDY0G7t/ryOnGLtKteXmAf0oJnwkelIyfyj2KI8GChBuTJonGlXKr5klPE89/ycmkgDl+T6Ms7PhiNZpuGEE2QE=",
    "signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+/hp88DKJ0sv3eT3FxWcs71xmbLKD/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN/EuT4TNW1WZbNa4i0Jd2DSJOe7oI/XYXzojLdrtmcL7I6CmE/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu/0uSzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBjTCCAYkCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzA4MDIxNjA5NDZaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIGEfVr+4x9RQXyfF8IYA0kraoK0pcZEaBlINo6EGrOReMAoGCCqGSM49BAMCBEgwRgIhAKunK47QEr/ZjxPlVl+etzVzbKA41xPLWtO01oUOlulmAiEAiaFH9F9LK6uqTFAUW/WIDkHWiFuSm5a3NVox7DlyIf0AAAAAAAA=",
    "header": {
      "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEX1ievoT8DRB8T5zGkhHZHeDr0oBmYEgsDSxyT0MD0IZ2Mpfjz2LdWq6LUwSH9EmxdPEzMunsZKWMyOr3K/zlsw==",
      "publicKeyHash": "tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6Nl0=",
      "transactionId": "3cee89679130a4b2617c76118a1c62fd400cd45b49dc0916d5b951b560cd17b4"
    }
  },
  "payment_method_details": {
    "display_name": "Visa 1234",
    "type": "debit",
    "network": "Visa"
  }
}

```

knet

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|language|string|false|none|Required for KNet Gateway payments.<br><br>This field enables the issuer's site to select the consumer's preferred language.<br>For example, the language selected on the merchant's site – if the issuer's site supports it.<br>Code list in accordance with ISO 639-1. (Arabic = 'ar', English = 'en').<br>Note that 'ar' corresponds to 'ARA' and 'en' to 'USA'. Both values accepted by KNet Gateway.|
|user_defined_field1|string|false|none|User-defined field that can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed|
|user_defined_field2|string|false|none|User-defined field that can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed|
|user_defined_field3|string|false|none|User-defined field that can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed. Note that this field must be omitted when the `card_token` field is not empty. This restriction exists because a card token is passed to KNet Gateway as `user_defined_field3`|
|user_defined_field4|string|false|none|User-defined field that can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed.|
|user_defined_field5|string|false|none|User-defined field that can be used to pass and store any additional transaction data required to be archived with the transaction and available as a searching criterion. Only alphanumeric characters and spaces are allowed. Note that this field must be omitted when the `ptlf` field is not empty. This restriction exists because a PTLF value is passed to KNet Gateway as `user_defined_field5`|
|card_token|string|false|none|This token allows re-use of card details for multiple payments. This 8-digit token should be generated by a merchant. When a subsequent payment is initialized with the same card token, a customer is presented with two options. The customer can choose to pay with KFast (doesn't need to enter card details again), or with KNet as usual. The payment flow stays the same i.e. a merchant should redirect a customer to the redirect URL which is provided in the payment creation response. Note that `user_defined_field3` must be omitted when the `card_token` field is not empty. This restriction exists because a card token is passed to KNet Gateway as `user_defined_field3`|
|ptlf|string|false|none|This is an ID for merchant PTLF functionality tracking. Only alphanumeric characters are allowed. Note that `user_defined_field5` must be omitted when the `ptlf` field is not empty. This restriction exists because a PTLF value is passed to KNet Gateway as `user_defined_field5`.|
|token_type|string|false|none|The token type. This field is always `applepay` for KNet Apple Pay payments.|
|token_data|[TokenData](#schematokendata)|false|none|The Apple Pay payment token. Required for Apple Pay payments.|
|payment_method_details|object|false|none|The payment data received in the Apple Pay payload. Required for Apple Pay payments.|
|» display_name|string|false|none|The payment type display name.|
|» type|string|false|none|The payment method type.|
|» network|string|false|none|The card network.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|knet|
|language|ar|
|language|en|
|token_type|applepay|

<h2 id="tocS_PaymentRequestMBWaySource">PaymentRequestMBWaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestmbwaysource"></a>
<a id="schema_PaymentRequestMBWaySource"></a>
<a id="tocSpaymentrequestmbwaysource"></a>
<a id="tocspaymentrequestmbwaysource"></a>

```json
{
  "type": "mbway"
}

```

mbway

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|mbway|

<h2 id="tocS_PaymentRequestMobilePaySource">PaymentRequestMobilePaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestmobilepaysource"></a>
<a id="schema_PaymentRequestMobilePaySource"></a>
<a id="tocSpaymentrequestmobilepaysource"></a>
<a id="tocspaymentrequestmobilepaysource"></a>

```json
{
  "type": "mobilepay"
}

```

mobilepay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|mobilepay|

<h2 id="tocS_PaymentRequestMultibancoSource">PaymentRequestMultibancoSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestmultibancosource"></a>
<a id="schema_PaymentRequestMultibancoSource"></a>
<a id="tocSpaymentrequestmultibancosource"></a>
<a id="tocspaymentrequestmultibancosource"></a>

```json
{
  "payment_country": "PT",
  "account_holder_name": "string",
  "billing_descriptor": "string",
  "type": "multibanco"
}

```

multibanco

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_country|string|true|none|The 2-letter ISO country code of the country in which the payment instrument is issued/operated.|
|account_holder_name|string|true|none|The account holder.|
|billing_descriptor|string|false|none|Payment billing descriptor.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_country|PT|
|*anonymous*|multibanco|

<h2 id="tocS_PaymentRequestNetworkTokenSource">PaymentRequestNetworkTokenSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestnetworktokensource"></a>
<a id="schema_PaymentRequestNetworkTokenSource"></a>
<a id="tocSpaymentrequestnetworktokensource"></a>
<a id="tocspaymentrequestnetworktokensource"></a>

```json
{
  "token": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "token_type": "vts",
  "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
  "eci": "05",
  "stored": true,
  "store_for_future_use": false,
  "name": "Bruce Wayne",
  "cvv": "956",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "account_holder": {},
  "type": "network_token"
}

```

network_token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The network token PAN|
|expiry_month|integer|true|none|The expiry month of the token|
|expiry_year|integer|true|none|The expiry year of the token|
|token_type|string|true|none|The type of token|
|cryptogram|string|true|none|The Base64 encoded cryptographic identifier (TAVV) used by card schemes to validate the token verification result. Optional if `previous_payment_id` is specified and `3ds.enabled` is false|
|eci|string|true|none|The Electronic Commerce Indicator (ECI) security level associated with the token. Optional if `previous_payment_id` is specified and `3ds.enabled` is false|
|stored|boolean|false|none|Indicates whether this card is being submitted from your own stored card-on-file system, rather than being entered by the customer at the time of payment. Set to `true` when you provide card details that you already have on file for the customer.|
|store_for_future_use|boolean|false|none|This must be set to true if you intend to reuse the payment credentials in subsequent payments. Setting the field as false will mean that a <a href="https://www.checkout.com/docs/payments/store-payment-details/payment-instruments" target="blank">payment instrument</a> will not be included in the payment response.|
|name|string|false|none|The customer's name|
|cvv|string|false|none|The card verification value/code. 3 digits, except for American Express (4 digits)|
|billing_address|[Address](#schemaaddress)|false|none|The customer's billing address|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number|
|account_holder|object|false|none|Information about the account holder of the card|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|token_type|vts|
|token_type|mdes|
|token_type|applepay|
|token_type|googlepay|
|*anonymous*|network_token|

<h2 id="tocS_PaymentRequestOctopusPaySource">PaymentRequestOctopusPaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestoctopuspaysource"></a>
<a id="schema_PaymentRequestOctopusPaySource"></a>
<a id="tocSpaymentrequestoctopuspaysource"></a>
<a id="tocspaymentrequestoctopuspaysource"></a>

```json
{
  "type": "octopus"
}

```

octopus

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|octopus|

<h2 id="tocS_PaymentRequestP24Source">PaymentRequestP24Source</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestp24source"></a>
<a id="schema_PaymentRequestP24Source"></a>
<a id="tocSpaymentrequestp24source"></a>
<a id="tocspaymentrequestp24source"></a>

```json
{
  "type": "p24",
  "payment_country": "PL",
  "account_holder_name": "string",
  "account_holder_email": "string",
  "billing_descriptor": "string"
}

```

p24

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_country|string|true|none|The 2-letter ISO country code of the country in which the payment instrument is issued/operated.|
|account_holder_name|string|true|none|The account holder.|
|account_holder_email|string|true|none|RFC-compliant email address of the account holder.|
|billing_descriptor|string|false|none|Payment billing descriptor.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|p24|
|payment_country|PL|

<h2 id="tocS_PaymentRequestPayNowSource">PaymentRequestPayNowSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestpaynowsource"></a>
<a id="schema_PaymentRequestPayNowSource"></a>
<a id="tocSpaymentrequestpaynowsource"></a>
<a id="tocspaymentrequestpaynowsource"></a>

```json
{
  "type": "paynow"
}

```

paynow

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|paynow|

<h2 id="tocS_PaymentRequestPlaidSource">PaymentRequestPlaidSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestplaidsource"></a>
<a id="schema_PaymentRequestPlaidSource"></a>
<a id="tocSpaymentrequestplaidsource"></a>
<a id="tocspaymentrequestplaidsource"></a>

```json
{
  "token": "string",
  "account_holder": {
    "type": "individual",
    "first_name": "John",
    "last_name": "Smith",
    "tax_id": "123456",
    "date_of_birth": "1986-01-01",
    "country_of_birth": "GB",
    "residential_status": "resident",
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "identification": {
      "type": "SSN",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "type": "plaid"
}

```

plaid

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The `processor_token` returned from Plaid’s `/processor/token/create` endpoint. <br><br>In the sandbox environment, this token will have the format `processor-sandbox-xxx`.|
|account_holder|[AccountHolder](#schemaaccountholder)|true|none|The account holder details.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|plaid|

<h2 id="tocS_PaymentRequestQPaySource">PaymentRequestQPaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestqpaysource"></a>
<a id="schema_PaymentRequestQPaySource"></a>
<a id="tocSpaymentrequestqpaysource"></a>
<a id="tocspaymentrequestqpaysource"></a>

```json
{
  "type": "qpay",
  "quantity": 1,
  "description": "string",
  "language": "string",
  "national_id": "string"
}

```

qpay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|quantity|integer|false|none|A numeric value greater than zero that represents the quantity of a purchased item. The value is used for display purposes only and does not affect the total amount of the payment. The minimum allowed value is 1.|
|description|string|true|none|Alphanumeric string containing a description of the payment order. Note: The maximum allowed length of this property is 255 characters after UTF-8 URL encoding.|
|language|string|false|none|Alphabetic value representing the language of the interface displayed to customer at merchant site, and used as language for the payment description parameter.  PG will use this value to display the interface supporting selected language to the customer during the payment process.  Supported values are: `En`, `Ar`. The default value is `En`.|
|national_id|string|false|none|Alphanumeric value representing the national ID of the customer performing the transaction. The maximum allowed length of this property is 32.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|qpay|

<h2 id="tocS_PaymentRequestSEPAV4Source">PaymentRequestSEPAV4Source</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestsepav4source"></a>
<a id="schema_PaymentRequestSEPAV4Source"></a>
<a id="tocSpaymentrequestsepav4source"></a>
<a id="tocspaymentrequestsepav4source"></a>

```json
{
  "country": "FR",
  "account_number": "FR7630006000011234567890189",
  "currency": "EUR",
  "mandate_id": "123456",
  "mandate_type": "Core",
  "date_of_signature": "2022-08-02",
  "account_holder": {
    "first_name": "John",
    "last_name": "Wick",
    "company_name": "Checkout.com",
    "type": "Individual",
    "billing_address": {
      "address_line1": "Evergreen Terrace",
      "address_line2": "742",
      "city": "Paris",
      "zip": "75000",
      "country": "FR"
    }
  },
  "type": "sepa"
}

```

sepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country|string|true|none|The account's country, as an ISO 3166-1 alpha-2 code.|
|account_number|string|true|none|The account holder's IBAN.|
|currency|string|true|none|The account holder's account currency.|
|mandate_id|string|false|none|The ID of the mandate.|
|mandate_type|string|false|none|The type of mandate.|
|date_of_signature|string|false|none|The date the mandate was signed, in the format yyyy-MM-dd|
|account_holder|object|true|none|The account holder's personal information.|
|» first_name|string|false|none|The account holder's first name.|
|» last_name|string|false|none|The account holder's last name.|
|» company_name|string|false|none|The account holder's company name.|
|» type|string|false|none|The type of account holder|
|» billing_address|object|true|none|The account holder's billing address.|
|»» address_line1|string|true|none|The account holder's street name.|
|»» address_line2|string|true|none|The account holder's street number.|
|»» city|string|true|none|The account holder's city.|
|»» zip|string|true|none|The account holder's zip code.|
|»» country|string|true|none|The account holder's country, as an ISO 3166-1 alpha-2 code.|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|mandate_type|Core|
|mandate_type|B2B|
|type|Individual|
|type|Corporate|
|*anonymous*|sepa|

<h2 id="tocS_PaymentRequestSequraSource">PaymentRequestSequraSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestsequrasource"></a>
<a id="schema_PaymentRequestSequraSource"></a>
<a id="tocSpaymentrequestsequrasource"></a>
<a id="tocspaymentrequestsequrasource"></a>

```json
{
  "type": "sequra",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

sequra

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|billing_address|[Address](#schemaaddress)|true|none|The billing address of the cardholder|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|sequra|

<h2 id="tocS_PaymentRequestSourceType">PaymentRequestSourceType</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestsourcetype"></a>
<a id="schema_PaymentRequestSourceType"></a>
<a id="tocSpaymentrequestsourcetype"></a>
<a id="tocspaymentrequestsourcetype"></a>

```json
"string"

```

Ordered list of payment request source types used for discriminators

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Ordered list of payment request source types used for discriminators|

<h2 id="tocS_PaymentRequestStcPaySource">PaymentRequestStcPaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequeststcpaysource"></a>
<a id="schema_PaymentRequestStcPaySource"></a>
<a id="tocSpaymentrequeststcpaysource"></a>
<a id="tocspaymentrequeststcpaysource"></a>

```json
{
  "type": "stcpay"
}

```

stcpay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|stcpay|

<h2 id="tocS_PaymentRequestSwishSource">PaymentRequestSwishSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestswishsource"></a>
<a id="schema_PaymentRequestSwishSource"></a>
<a id="tocSpaymentrequestswishsource"></a>
<a id="tocspaymentrequestswishsource"></a>

```json
{
  "payment_country": "SE",
  "account_holder": {
    "first_name": "string",
    "last_name": "string"
  },
  "billing_descriptor": {
    "name": "string"
  },
  "type": "swish"
}

```

swish

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payment_country|string|true|none|The 2-letter ISO country code of the country in which the payment instrument is issued or operated.|
|account_holder|object|true|none|Information about the account holder's details|
|» first_name|string|true|none|The account holder's first name|
|» last_name|string|true|none|The account holder's last name|
|billing_descriptor|object|false|none|Payment billing descriptor|
|» name|string|true|none|A description for the payment, which displays on the customer's statement|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_country|SE|
|*anonymous*|swish|

<h2 id="tocS_PaymentRequestTamaraSource">PaymentRequestTamaraSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequesttamarasource"></a>
<a id="schema_PaymentRequestTamaraSource"></a>
<a id="tocSpaymentrequesttamarasource"></a>
<a id="tocspaymentrequesttamarasource"></a>

```json
{
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "type": "tamara"
}

```

tamara

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|billing_address|[Address](#schemaaddress)|true|none|The billing address of the cardholder|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|tamara|

<h2 id="tocS_PaymentRequestTngSource">PaymentRequestTngSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequesttngsource"></a>
<a id="schema_PaymentRequestTngSource"></a>
<a id="tocSpaymentrequesttngsource"></a>
<a id="tocspaymentrequesttngsource"></a>

```json
{
  "type": "tng"
}

```

tng

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|tng|

<h2 id="tocS_PaymentRequestTokenSource">PaymentRequestTokenSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequesttokensource"></a>
<a id="schema_PaymentRequestTokenSource"></a>
<a id="tocSpaymentrequesttokensource"></a>
<a id="tocspaymentrequesttokensource"></a>

```json
{
  "type": "token",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "store_for_future_use": false,
  "account_holder": {}
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|false|none|The Checkout.com token (e.g., a card token)|
|billing_address|[Address](#schemaaddress)|false|none|The customer's billing address. This will override the billing address specified during tokenization|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The customer's phone number. This will override the phone number specified during tokenization|
|store_for_future_use|boolean|false|none|This must be set to true if you intend to reuse the payment credentials in subsequent payments. Setting the field as false will mean that a <a href="https://www.checkout.com/docs/payments/store-payment-details/payment-instruments" target="blank">payment instrument</a> will not be included in the payment response.|
|account_holder|object|false|none|Information about the account holder of the card|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|token|

<h2 id="tocS_PaymentRequestTruemoneySource">PaymentRequestTruemoneySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequesttruemoneysource"></a>
<a id="schema_PaymentRequestTruemoneySource"></a>
<a id="tocSpaymentrequesttruemoneysource"></a>
<a id="tocspaymentrequesttruemoneysource"></a>

```json
{
  "type": "truemoney"
}

```

truemoney

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|truemoney|

<h2 id="tocS_PaymentRequestTwintSource">PaymentRequestTwintSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequesttwintsource"></a>
<a id="schema_PaymentRequestTwintSource"></a>
<a id="tocSpaymentrequesttwintsource"></a>
<a id="tocspaymentrequesttwintsource"></a>

```json
{
  "type": "twint"
}

```

twint

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|twint|

<h2 id="tocS_PaymentRequestVippsSource">PaymentRequestVippsSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestvippssource"></a>
<a id="schema_PaymentRequestVippsSource"></a>
<a id="tocSpaymentrequestvippssource"></a>
<a id="tocspaymentrequestvippssource"></a>

```json
{
  "type": "vipps"
}

```

vipps

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|vipps|

<h2 id="tocS_PaymentRequestWeChatPaySource">PaymentRequestWeChatPaySource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentrequestwechatpaysource"></a>
<a id="schema_PaymentRequestWeChatPaySource"></a>
<a id="tocSpaymentrequestwechatpaysource"></a>
<a id="tocspaymentrequestwechatpaysource"></a>

```json
{
  "billing_address": {
    "address_line1": "150 Kennedy Road",
    "address_line2": "Acacia Building",
    "city": "Wan Chai",
    "state": "Hong Kong",
    "zip": 42345,
    "country": "HK"
  },
  "type": "wechatpay"
}

```

wechatpay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|billing_address|object|false|none|none|
|» address_line1|string|false|none|The first line of the address|
|» address_line2|string|false|none|The second line of the address|
|» city|string|false|none|The address city|
|» state|string|false|none|The address state|
|» zip|number|false|none|The address zip/postal code|
|» country|string|false|none|The two-letter ISO country code of the address|
|type|string|true|none|The payment source type.|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[PaymentRequestSourceType](#schemapaymentrequestsourcetype)|false|none|Ordered list of payment request source types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|wechatpay|

<h2 id="tocS_BankPayoutRequestCurrencyAccountSource">BankPayoutRequestCurrencyAccountSource</h2>
<!-- backwards compatibility -->
<a id="schemabankpayoutrequestcurrencyaccountsource"></a>
<a id="schema_BankPayoutRequestCurrencyAccountSource"></a>
<a id="tocSbankpayoutrequestcurrencyaccountsource"></a>
<a id="tocsbankpayoutrequestcurrencyaccountsource"></a>

```json
{
  "type": "entity",
  "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
}

```

currency_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout source type.|
|id|string|true|none|The currency account's identifier. <br><i>Its holding currency must match the payout's `currency`</i>.|

<h2 id="tocS_BankPayoutRequestEntitySource">BankPayoutRequestEntitySource</h2>
<!-- backwards compatibility -->
<a id="schemabankpayoutrequestentitysource"></a>
<a id="schema_BankPayoutRequestEntitySource"></a>
<a id="tocSbankpayoutrequestentitysource"></a>
<a id="tocsbankpayoutrequestentitysource"></a>

```json
{
  "type": "entity",
  "id": "ent_w4jelhppmfiufdnatam37wrfc4"
}

```

entity

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payout source type.|
|id|string|true|none|The entity or sub-entity's identifier, only applies to Platform Clients.|

<h2 id="tocS_01_RequestSources_AccountHolderIndividual">01_RequestSources_AccountHolderIndividual</h2>
<!-- backwards compatibility -->
<a id="schema01_requestsources_accountholderindividual"></a>
<a id="schema_01_RequestSources_AccountHolderIndividual"></a>
<a id="tocS01_requestsources_accountholderindividual"></a>
<a id="tocs01_requestsources_accountholderindividual"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "account_name_inquiry": true
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The card account holder type|
|first_name|string|true|none|The card account holder's first name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|middle_name|string|false|none|The card account holder's middle name<br><br>***Conditional*** - required when the [card metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response) `issuer_country` = `ZA` (South Africa)|
|last_name|string|true|none|The card account holder's last name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|account_name_inquiry|boolean|false|none|Whether the ANI (account name inquiry) check should be performed with the scheme (Visa or MasterCard)|

<h2 id="tocS_02_RequestSources_AccountHolderCorporate">02_RequestSources_AccountHolderCorporate</h2>
<!-- backwards compatibility -->
<a id="schema02_requestsources_accountholdercorporate"></a>
<a id="schema_02_RequestSources_AccountHolderCorporate"></a>
<a id="tocS02_requestsources_accountholdercorporate"></a>
<a id="tocs02_requestsources_accountholdercorporate"></a>

```json
{
  "type": "corporate",
  "company_name": "string",
  "account_name_inquiry": true
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The card account holder type|
|company_name|string|true|none|The card account holder's company name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|account_name_inquiry|boolean|false|none|Whether the ANI (account name inquiry) check should be performed with the scheme (Visa or MasterCard)|

<h2 id="tocS_03_RequestSources_AccountHolderGovernment">03_RequestSources_AccountHolderGovernment</h2>
<!-- backwards compatibility -->
<a id="schema03_requestsources_accountholdergovernment"></a>
<a id="schema_03_RequestSources_AccountHolderGovernment"></a>
<a id="tocS03_requestsources_accountholdergovernment"></a>
<a id="tocs03_requestsources_accountholdergovernment"></a>

```json
{
  "type": "government",
  "company_name": "string",
  "account_name_inquiry": true
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The card account holder type|
|company_name|string|true|none|The card account holder's company name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|account_name_inquiry|boolean|false|none|Whether the ANI (account name inquiry) check should be performed with the scheme (Visa or MasterCard)|

<h2 id="tocS_PaymentResponseBankAccountDestination">PaymentResponseBankAccountDestination</h2>
<!-- backwards compatibility -->
<a id="schemapaymentresponsebankaccountdestination"></a>
<a id="schema_PaymentResponseBankAccountDestination"></a>
<a id="tocSpaymentresponsebankaccountdestination"></a>
<a id="tocspaymentresponsebankaccountdestination"></a>

```json
{
  "type": "bank_account",
  "id": "string"
}

```

bank_account

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment destination type.|
|id|string|true|none|The payment instrument identifier|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bank_account|

<h2 id="tocS_01_PaymentResponseIndividualSender">01_PaymentResponseIndividualSender</h2>
<!-- backwards compatibility -->
<a id="schema01_paymentresponseindividualsender"></a>
<a id="schema_01_PaymentResponseIndividualSender"></a>
<a id="tocS01_paymentresponseindividualsender"></a>
<a id="tocs01_paymentresponseindividualsender"></a>

```json
{
  "type": "individual",
  "reference": "8285282045818",
  "first_name": "John",
  "last_name": "Jones",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|
|first_name|string|true|none|The sender's first name|
|last_name|string|true|none|The sender's last name|
|address|[Address](#schemaaddress)|true|none|The sender's address|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_02_PaymentResponseCorporateSender">02_PaymentResponseCorporateSender</h2>
<!-- backwards compatibility -->
<a id="schema02_paymentresponsecorporatesender"></a>
<a id="schema_02_PaymentResponseCorporateSender"></a>
<a id="tocS02_paymentresponsecorporatesender"></a>
<a id="tocs02_paymentresponsecorporatesender"></a>

```json
{
  "type": "corporate",
  "reference": "8285282045818",
  "company_name": "string",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  }
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|
|company_name|string|true|none|The sender's company name|
|address|[Address](#schemaaddress)|false|none|The sender's address|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_03_PaymentResponseInstrumentSender">03_PaymentResponseInstrumentSender</h2>
<!-- backwards compatibility -->
<a id="schema03_paymentresponseinstrumentsender"></a>
<a id="schema_03_PaymentResponseInstrumentSender"></a>
<a id="tocS03_paymentresponseinstrumentsender"></a>
<a id="tocs03_paymentresponseinstrumentsender"></a>

```json
{
  "type": "instrument",
  "reference": "8285282045818"
}

```

instrument

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of sender|
|reference|string|false|none|The sender's reference for the payout|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|instrument|

<h2 id="tocS_PaymentDeclinedSourceResponse">PaymentDeclinedSourceResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentdeclinedsourceresponse"></a>
<a id="schema_PaymentDeclinedSourceResponse"></a>
<a id="tocSpaymentdeclinedsourceresponse"></a>
<a id="tocspaymentdeclinedsourceresponse"></a>

```json
{
  "id": "string",
  "type": "card"
}

```

A source-based APM Declined payment source response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The payment instrument identifier|
|type|string|true|none|The type of payment source|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|
|type|ach|
|type|alipay_cn|
|type|bank_account|
|type|sepa|
|type|bacs|

<h2 id="tocS_PaymentResponseCardSource">PaymentResponseCardSource</h2>
<!-- backwards compatibility -->
<a id="schemapaymentresponsecardsource"></a>
<a id="schema_PaymentResponseCardSource"></a>
<a id="tocSpaymentresponsecardsource"></a>
<a id="tocspaymentresponsecardsource"></a>

```json
{
  "type": "card",
  "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "scheme": "VISA",
  "scheme_local": "Cartes_Bancaires",
  "local_schemes": [
    "cartes_bancaires",
    "visa"
  ],
  "last4": "9996",
  "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
  "bin": "45434748",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "card_wallet_type": "applepay",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "avs_check": "S",
  "cvv_check": "Y",
  "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
  "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
  "account_update_status": "card_updated",
  "account_update_failure_code": "VAU009",
  "account_holder": {}
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type.|
|id|string|false|none|The payment source identifier that can be used for subsequent payments. For new sources, this will only be returned if the payment was approved|
|billing_address|[Address](#schemaaddress)|false|none|The payment source owner's billing address|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The payment source owner's phone number|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|The expiry year|
|name|string|false|none|The cardholder's name|
|scheme|string|false|none|The card scheme|
|scheme_local|string|false|none|Replaced by `local_schemes`<br>The local co-branded card scheme.|
|local_schemes|[string]|false|none|The local co-branded card schemes.|
|last4|string|true|none|The last four digits of the card number|
|fingerprint|string|true|none|Uniquely identifies this particular card number. You can use this to compare cards across customers.|
|bin|string|true|none|The card issuer's Bank Identification Number (BIN)|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|card_wallet_type|string|false|none|The card wallet type|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">two-letter ISO code</a>)|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|avs_check|string|false|none|The Address Verification System check result|
|cvv_check|string|false|none|The card verification value (CVV) check result|
|payment_account_reference|string|false|none|A unique reference to the underlying card for network tokens (e.g., Apple Pay, Google Pay)|
|encrypted_card_number|string|false|none|The JWE encrypted full card number that has been updated by <a href="https://www.checkout.com/docs/payments/manage-payments/real-time-account-updater" target="_blank">real-time account updater</a>.|
|account_update_status|string|false|none|Specifies what card information was updated by the <a href="https://www.checkout.com/docs/payments/manage-payments/real-time-account-updater#Retrieve_card_updates" target="_blank">Real-Time Account Updater</a>.|
|account_update_failure_code|string|false|none|Provides the <a href="https://www.checkout.com/docs/developer-resources/codes/real-time-account-updater-response-codes" target="_blank">failure code</a> if the <a href="https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/real-time-account-updater" target="_blank">Real-Time Account Updater</a> fails to update the card information.|
|account_holder|object|false|none|Information about the account holder of the card|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|card_wallet_type|applepay|
|card_wallet_type|googlepay|
|account_update_status|card_updated|
|account_update_status|card_expiry_updated|
|account_update_status|card_closed|
|account_update_status|contact_cardholder|

<h2 id="tocS_01_ResponseSources_AccountHolderIndividual">01_ResponseSources_AccountHolderIndividual</h2>
<!-- backwards compatibility -->
<a id="schema01_responsesources_accountholderindividual"></a>
<a id="schema_01_ResponseSources_AccountHolderIndividual"></a>
<a id="tocS01_responsesources_accountholderindividual"></a>
<a id="tocs01_responsesources_accountholderindividual"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "account_name_inquiry": "full_match",
  "account_name_inquiry_details": {
    "first_name": "full_match",
    "middle_name": "full_match",
    "last_name": "full_match"
  }
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the card account holder|
|first_name|string|true|none|The card account holder's first name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|middle_name|string|false|none|The card account holder's middle name<br><br>***Conditional*** - required when the [card metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response) `issuer_country` = `ZA` (South Africa)|
|last_name|string|true|none|The card account holder's last name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|account_name_inquiry|string|true|none|The result of the Account Name Inquiry check.|
|account_name_inquiry_details|[ResponseSources_AccountHolderIndividual_Names_Enquiry](#schemaresponsesources_accountholderindividual_names_enquiry)|false|none|Details of the Account Name Inquiry check.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|account_name_inquiry|full_match|
|account_name_inquiry|partial_match|
|account_name_inquiry|no_match|
|account_name_inquiry|not_performed|
|account_name_inquiry|not_supported|

<h2 id="tocS_02_ResponseSources_AccountHolderCorporate">02_ResponseSources_AccountHolderCorporate</h2>
<!-- backwards compatibility -->
<a id="schema02_responsesources_accountholdercorporate"></a>
<a id="schema_02_ResponseSources_AccountHolderCorporate"></a>
<a id="tocS02_responsesources_accountholdercorporate"></a>
<a id="tocs02_responsesources_accountholdercorporate"></a>

```json
{
  "type": "corporate",
  "company_name": "string",
  "account_name_inquiry": "full_match"
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the card account holder|
|company_name|string|true|none|The card account holder's company name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|account_name_inquiry|string|true|none|The Account Name Inquiry check result.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|corporate|
|account_name_inquiry|full_match|
|account_name_inquiry|partial_match|
|account_name_inquiry|no_match|
|account_name_inquiry|not_performed|
|account_name_inquiry|not_supported|

<h2 id="tocS_03_ResponseSources_AccountHolderGovernment">03_ResponseSources_AccountHolderGovernment</h2>
<!-- backwards compatibility -->
<a id="schema03_responsesources_accountholdergovernment"></a>
<a id="schema_03_ResponseSources_AccountHolderGovernment"></a>
<a id="tocS03_responsesources_accountholdergovernment"></a>
<a id="tocs03_responsesources_accountholdergovernment"></a>

```json
{
  "type": "government",
  "company_name": "string",
  "account_name_inquiry": "full_match"
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of the card account holder|
|company_name|string|true|none|The card account holder's company name<br><br>*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*|
|account_name_inquiry|string|true|none|The Account Name Inquiry check result.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|government|
|account_name_inquiry|full_match|
|account_name_inquiry|partial_match|
|account_name_inquiry|no_match|
|account_name_inquiry|not_performed|
|account_name_inquiry|not_supported|

<h2 id="tocS_ResponseSources_AccountHolderIndividual_Names_Enquiry">ResponseSources_AccountHolderIndividual_Names_Enquiry</h2>
<!-- backwards compatibility -->
<a id="schemaresponsesources_accountholderindividual_names_enquiry"></a>
<a id="schema_ResponseSources_AccountHolderIndividual_Names_Enquiry"></a>
<a id="tocSresponsesources_accountholderindividual_names_enquiry"></a>
<a id="tocsresponsesources_accountholderindividual_names_enquiry"></a>

```json
{
  "first_name": "full_match",
  "middle_name": "full_match",
  "last_name": "full_match"
}

```

The granular results of the Account Name Inquiry check performed on the individual that owns the account.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The result of the first name check.|
|middle_name|string|false|none|The result of the middle name check.|
|last_name|string|false|none|The result of the last name check.|

#### Enumerated Values

|Property|Value|
|---|---|
|first_name|full_match|
|first_name|partial_match|
|first_name|no_match|
|middle_name|full_match|
|middle_name|partial_match|
|middle_name|no_match|
|last_name|full_match|
|last_name|partial_match|
|last_name|no_match|

<h2 id="tocS_RetryGetResponse">RetryGetResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrygetresponse"></a>
<a id="schema_RetryGetResponse"></a>
<a id="tocSretrygetresponse"></a>
<a id="tocsretrygetresponse"></a>

```json
{
  "enabled": true,
  "attempts_made": 0,
  "max_attempts": 6,
  "ends_on": "2019-08-24T14:15:22Z",
  "next_attempt_on": "2019-08-24T14:15:22Z"
}

```

Configuration relating to asynchronous retries

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Indicates whether asynchronous retries are enabled for the payment.|
|attempts_made|integer|false|none|The number of retries attempted so far.|
|max_attempts|integer|false|none|The maximum number of authorization retry attempts, excluding the initial authorization.|
|ends_on|[Timestamp](#schematimestamp)|false|none|A timestamp that details the date on which the retry schedule expires, in ISO 8601 format.|
|next_attempt_on|[Timestamp](#schematimestamp)|false|none|A timestamp that details the date on which the next authorization attempt will take place, in ISO 8601 format.|

<h2 id="tocS_RetryPostResponse">RetryPostResponse</h2>
<!-- backwards compatibility -->
<a id="schemaretrypostresponse"></a>
<a id="schema_RetryPostResponse"></a>
<a id="tocSretrypostresponse"></a>
<a id="tocsretrypostresponse"></a>

```json
{
  "enabled": true,
  "max_attempts": 6,
  "ends_on": "2019-08-24T14:15:22Z",
  "next_attempt_on": "2019-08-24T14:15:22Z"
}

```

Configuration relating to asynchronous retries

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Indicates whether asynchronous retries are enabled for the payment.|
|max_attempts|integer|false|none|The maximum number of authorization retry attempts, excluding the initial authorization.|
|ends_on|[Timestamp](#schematimestamp)|false|none|A timestamp that details the date on which the retry schedule expires, in ISO 8601 format.|
|next_attempt_on|[Timestamp](#schematimestamp)|false|none|A timestamp of the date on which the next authorization attempt will take place, in ISO 8601 format.|

<h2 id="tocS_RetryRequest">RetryRequest</h2>
<!-- backwards compatibility -->
<a id="schemaretryrequest"></a>
<a id="schema_RetryRequest"></a>
<a id="tocSretryrequest"></a>
<a id="tocsretryrequest"></a>

```json
{
  "enabled": true,
  "dunning": {
    "enabled": true,
    "max_attempts": 6,
    "end_after_days": 30
  },
  "downtime": {
    "enabled": true
  }
}

```

Configuration of asynchronous retries.
For more information about asynchronous retries and supported response codes, see [Configure scheduled retries](https://www.checkout.com/docs/payments/manage-payments/configure-scheduled-retries).

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Indicates whether asynchronous retries are enabled for the payment.|
|dunning|[DunningRetryRequest](#schemadunningretryrequest)|false|none|Configuration of asynchronous Dunning retries.|
|downtime|[DowntimeRetryRequest](#schemadowntimeretryrequest)|false|none|Configuration of asynchronous Downtime retries.|

<h2 id="tocS_RiskRequest">RiskRequest</h2>
<!-- backwards compatibility -->
<a id="schemariskrequest"></a>
<a id="schema_RiskRequest"></a>
<a id="tocSriskrequest"></a>
<a id="tocsriskrequest"></a>

```json
{
  "enabled": false,
  "device_session_id": "dsid_ipsmclhxwq72phhr32iwfvrflm",
  "device": {
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
    "network": {
      "ipv4": "63.33.82.13",
      "ipv6": "2001:0000:130F:0000:0000:09C0:876A:130B",
      "tor": false,
      "vpn": false,
      "proxy": false
    },
    "provider": {
      "id": "1728646225211.AfUgxG",
      "name": "List [ \"merchant\", \"fingerprintjs\", \"riskify\" ]"
    },
    "timestamp": "2024-02-06T15:00:00.000Z",
    "timezone": "60",
    "virtual_machine": false,
    "incognito": false,
    "jailbroken": false,
    "rooted": false,
    "java_enabled": false,
    "javascript_enabled": false,
    "language": "FR-fr",
    "color_depth": "16",
    "screen_height": "1080",
    "screen_width": "1920",
    "user_agent_client_hint": "string",
    "iframe_payment_allowed": true,
    "accept_header": "string"
  }
}

```

Configures the risk assessment performed during the processing of the payment

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|false|none|Whether a risk assessment should be performed|
|device_session_id|string|false|none|Device session ID collected from our standalone Risk.js package. If you integrate using our [Frames](https://www.checkout.com/docs/integrate/frames) solution, this ID is not required.|
|device|[DeviceDetails](#schemadevicedetails)|false|none|Details of the device from which the payment originated.|

<h2 id="tocS_Ach">Ach</h2>
<!-- backwards compatibility -->
<a id="schemaach"></a>
<a id="schema_Ach"></a>
<a id="tocSach"></a>
<a id="tocsach"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "account_type": "savings",
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "date_of_birth": "string",
    "identification": {
      "type": "string",
      "issuing_country": "string",
      "number": "string"
    }
  },
  "account_number": "string",
  "bank_code": "stringst",
  "country": "st"
}

```

The ACH payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» account_type|string|false|none|The type of Direct Debit account.|
|» account_holder|object|false|none|The account holder details.|
|»» type|string|false|none|The type of account holder.|
|»» first_name|string|false|none|The first name of the account holder.|
|»» last_name|string|false|none|The last name of the account holder.|
|»» company_name|string|false|none|The legal name of a registered company that holds the account.|
|»» date_of_birth|string|false|none|The account holder's date of birth.|
|»» identification|object|false|write-only|The account holder's government document identification, for example a Social Security Number (SSN).|
|»»» type|string|false|none|The document type.|
|»»» issuing_country|string|false|none|The country where the document was issued.|
|»»» number|string|false|none|The document number.|
|» account_number|string|false|write-only|The account number of the Direct Debit account.|
|» bank_code|string|false|write-only|The bank code of the Direct Debit account.|
|» country|string|false|none|The two-letter ISO country code of the bank account.|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|current|
|account_type|cash|
|type|individual|
|type|corporate|
|type|government|

<h2 id="tocS_AlipayCn">AlipayCn</h2>
<!-- backwards compatibility -->
<a id="schemaalipaycn"></a>
<a id="schema_AlipayCn"></a>
<a id="tocSalipaycn"></a>
<a id="tocsalipaycn"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The Alipay CN payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_AlipayHK">AlipayHK</h2>
<!-- backwards compatibility -->
<a id="schemaalipayhk"></a>
<a id="schema_AlipayHK"></a>
<a id="tocSalipayhk"></a>
<a id="tocsalipayhk"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The Alipay HK payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_Alma">Alma</h2>
<!-- backwards compatibility -->
<a id="schemaalma"></a>
<a id="schema_Alma"></a>
<a id="tocSalma"></a>
<a id="tocsalma"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Alma payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_ApplePay">ApplePay</h2>
<!-- backwards compatibility -->
<a id="schemaapplepay"></a>
<a id="schema_ApplePay"></a>
<a id="tocSapplepay"></a>
<a id="tocsapplepay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "token_data": {
    "version": "string",
    "data": "string",
    "signature": "string",
    "header": {
      "ephemeral_public_key": "string",
      "public_key_hash": "string",
      "transaction_id": "string"
    }
  },
  "token": {
    "id": "string",
    "expires_on": "2019-08-24T14:15:22Z"
  },
  "store_for_future_use": true,
  "phone": {
    "country_code": "+44",
    "number": "207 946 0000"
  },
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "last_name": "string",
    "middle_name": "string",
    "company_name": "string",
    "account_name_inquiry": true
  },
  "schemes": [
    "accel"
  ],
  "preferred_scheme": "visa"
}

```

The Apple Pay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» token_data|object|false|write-only|none|
|»» version|string|false|write-only|The version of the payment token. The token uses `EC_v1` for ECC-encrypted data, and `RSA_v1` for RSA-encrypted data.|
|»» data|string|false|write-only|The encrypted payment data, Base64-encoded.|
|»» signature|string|false|write-only|The signature of the payment and header data. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm.|
|»» header|object|false|write-only|Additional version-dependent information used to decrypt and verify the payment.|
|»»» ephemeral_public_key|string|false|write-only|none|
|»»» public_key_hash|string|false|write-only|none|
|»»» transaction_id|string|false|write-only|none|
|» token|object|false|none|The Checkout.com Apple Pay token.|
|»» id|string|true|none|The token identifier, prefixed by `tok_`.|
|»» expires_on|string(date-time)|false|none|The date and time the token expires, in ISO 8601 format.|
|» store_for_future_use|boolean|false|write-only|Set to `true` if you intend to reuse the payment credentials in subsequent payments. If set to `false`, a payment instrument will not be included in the payment response.|
|» phone|[PaymentSetupPhone](#schemapaymentsetupphone)|false|none|The customer's phone number.|
|» account_holder|[PaymentSetupAccountHolder](#schemapaymentsetupaccountholder)|false|none|Account holder details for the payment.|
|» schemes|[string]|false|read-only|The list of supported card scheme names.|
|» preferred_scheme|string|false|none|The preferred card scheme to process the payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|preferred_scheme|visa|
|preferred_scheme|mastercard|
|preferred_scheme|cartes_bancaires|

<h2 id="tocS_Bacs">Bacs</h2>
<!-- backwards compatibility -->
<a id="schemabacs"></a>
<a id="schema_Bacs"></a>
<a id="tocSbacs"></a>
<a id="tocsbacs"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "instrument_id": "src_wkq7552u245upl5h75x24554xy",
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string",
    "email": "john.smith@example.com"
  },
  "account_number": "string",
  "bank_code": "string",
  "country": "st",
  "currency": "string",
  "allow_partial_match": false
}

```

The Bacs payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» instrument_id|string|false|read-only|The ID of the Bacs instrument used for the payment.|
|» account_holder|object|false|none|The account holder details.|
|»» type|string|false|none|The type of account holder.|
|»» first_name|string|false|none|The first name of the account holder.|
|»» last_name|string|false|none|The last name of the account holder.|
|»» company_name|string|false|none|The legal name of a registered company that holds the account.|
|»» email|string|false|none|The email address of the account holder.|
|» account_number|string|false|write-only|The account number of the Bacs Direct Debit account.|
|» bank_code|string|false|write-only|The sort code of the Bacs Direct Debit account.|
|» country|string|false|none|The account's country, as an ISO 3166-1 alpha-2 code.|
|» currency|string|false|none|The account holder's account currency.|
|» allow_partial_match|boolean|false|none|Indicates whether the Bacs instrument is created when account validation returns a partial match. When `true`, the instrument is created on a partial match; when `false`, instrument creation fails on a partial match.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|

<h2 id="tocS_Bancontact">Bancontact</h2>
<!-- backwards compatibility -->
<a id="schemabancontact"></a>
<a id="schema_Bancontact"></a>
<a id="tocSbancontact"></a>
<a id="tocsbancontact"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "account_holder_name": "string"
}

```

The Bancontact payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» account_holder_name|string|false|none|The account holder's name.|

<h2 id="tocS_Benefit">Benefit</h2>
<!-- backwards compatibility -->
<a id="schemabenefit"></a>
<a id="schema_Benefit"></a>
<a id="tocSbenefit"></a>
<a id="tocsbenefit"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Benefit payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_Bizum">Bizum</h2>
<!-- backwards compatibility -->
<a id="schemabizum"></a>
<a id="schema_Bizum"></a>
<a id="tocSbizum"></a>
<a id="tocsbizum"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Bizum payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_Blik">Blik</h2>
<!-- backwards compatibility -->
<a id="schemablik"></a>
<a id="schema_Blik"></a>
<a id="tocSblik"></a>
<a id="tocsblik"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "partner_code": "999111"
}

```

The Blik payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» partner_code|string|false|write-only|The 6-digit BLIK code generated by the customer's banking app.|

<h2 id="tocS_Card">Card</h2>
<!-- backwards compatibility -->
<a id="schemacard"></a>
<a id="schema_Card"></a>
<a id="tocScard"></a>
<a id="tocscard"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "token": {
    "id": "string"
  },
  "details": {
    "number": "string",
    "last4": "string",
    "bin": "string",
    "scheme": "string",
    "expiry_month": 0,
    "expiry_year": 0,
    "name": "string",
    "cvv": "string",
    "stored": true,
    "expires_on": "2019-08-24T14:15:22Z",
    "allow_update": true
  },
  "store_for_future_use": true,
  "phone": {
    "country_code": "+44",
    "number": "207 946 0000"
  },
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "last_name": "string",
    "middle_name": "string",
    "company_name": "string",
    "account_name_inquiry": true
  },
  "schemes": [
    "accel"
  ],
  "preferred_scheme": "visa"
}

```

The Card payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» token|object|false|none|none|
|»» id|string|false|none|The Checkout.com card token identifier.|
|» details|object|false|none|none|
|»» number|string|false|write-only|The card number (without separators).|
|»» last4|string|false|read-only|The last four digits of the card number.|
|»» bin|string|false|read-only|The card issuer's Bank Identification Number (BIN).|
|»» scheme|string|false|read-only|The card scheme.|
|»» expiry_month|integer|false|none|The expiry month of the card.|
|»» expiry_year|integer|false|none|The expiry year of the card.|
|»» name|string|false|write-only|The cardholder's name.|
|»» cvv|string|false|write-only|The card verification value/code. 3 digits, except for American Express (4 digits).|
|»» stored|boolean|false|write-only|Indicates whether this card is being submitted from your own stored card-on-file system, rather than being entered by the customer at the time of payment. Set to `true` when you provide card details that you already have on file for the customer.|
|»» expires_on|string(date-time)|false|read-only|The time by which the card details must be confirmed.|
|»» allow_update|boolean|false|none|Indicates whether to use the Real-Time Account Updater to update the card information.|
|» store_for_future_use|boolean|false|write-only|Set to `true` if you intend to reuse the payment credentials in subsequent payments. If set to `false`, a payment instrument will not be included in the payment response.|
|» phone|[PaymentSetupPhone](#schemapaymentsetupphone)|false|none|The customer's phone number.|
|» account_holder|[PaymentSetupAccountHolder](#schemapaymentsetupaccountholder)|false|none|Account holder details for the payment.|
|» schemes|[string]|false|read-only|The list of supported card scheme names.|
|» preferred_scheme|string|false|none|The preferred card scheme to process the payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|preferred_scheme|visa|
|preferred_scheme|mastercard|
|preferred_scheme|cartes_bancaires|

<h2 id="tocS_CashApp">CashApp</h2>
<!-- backwards compatibility -->
<a id="schemacashapp"></a>
<a id="schema_CashApp"></a>
<a id="tocScashapp"></a>
<a id="tocscashapp"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "customer_profile_sharing": true,
  "customer_profile": {
    "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
    "cashtag": "$CASHTAG_C_TOKEN",
    "reference_id": "value",
    "full_name": "John Middle Doe",
    "given_name": "John",
    "middle_name": "Middle",
    "family_name": "Doe",
    "suffix": "Jr.",
    "birth_date": "1990-01-01",
    "address": {
      "address_line_1": "123 Main St",
      "address_line_2": "string",
      "address_line_3": "string",
      "locality": "Springfield",
      "sublocality": "string",
      "administrative_district_level_1": "IL",
      "postal_code": "62701",
      "country": "US"
    },
    "phone_number": "5555555555",
    "email_address": "cash@cash.com",
    "customer_since": "1970-01-18T12:46:04.8Z"
  },
  "reference": "ORDER-99",
  "action": {
    "type": "redirect",
    "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
  }
}

```

The Cash App payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» customer_profile_sharing|boolean|false|none|Indicates whether the customer consents to share their Cash App customer profile with Checkout.com.|
|» customer_profile|object|false|read-only|The customer's Cash App profile that they consented to share. Included in the response when `customer_profile_sharing` is enabled.<br><br>Cash App releases this profile only once. It's present in the first successful response when you get the Payment Setup after the customer authorizes the payment. Every subsequent response omits it.|
|»» customer_id|string|false|none|Cash App's identifier for the customer. This is not a Checkout.com customer identifier.|
|»» cashtag|string|false|none|The customer's `$Cashtag`.|
|»» reference_id|string|false|none|Cash App's reference for the customer profile.|
|»» full_name|string|false|none|The customer's full name.|
|»» given_name|string|false|none|The customer's given name.|
|»» middle_name|string|false|none|The customer's middle name.|
|»» family_name|string|false|none|The customer's family name.|
|»» suffix|string|false|none|The suffix of the customer's name.|
|»» birth_date|string(date)|false|none|The customer's date of birth.|
|»» address|object|false|none|The customer's address.|
|»»» address_line_1|string|false|none|The first line of the address.|
|»»» address_line_2|string|false|none|The second line of the address.|
|»»» address_line_3|string|false|none|The third line of the address.|
|»»» locality|string|false|none|The address locality, such as the city or town.|
|»»» sublocality|string|false|none|The address sublocality, such as the district or neighborhood.|
|»»» administrative_district_level_1|string|false|none|The address's top-level administrative district, such as the state or province.|
|»»» postal_code|string|false|none|The postal or zip code.|
|»»» country|string|false|none|The address country, in ISO 3166-1 alpha-2 format.|
|»» phone_number|string|false|none|The customer's phone number.|
|»» email_address|string|false|none|The customer's email address.|
|»» customer_since|string(date-time)|false|none|The date and time the customer's Cash App account was created.|
|» reference|string|false|read-only|A reference for the Cash App Pay transaction, returned by the provider.|
|» action|object|false|read-only|The next available action for the payment method.|
|»» type|string|false|none|The type of action.|
|»» redirect_url|string(uri)|false|none|The URL to redirect the customer to so they can authorize the payment with Cash App.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|redirect|

<h2 id="tocS_Dana">Dana</h2>
<!-- backwards compatibility -->
<a id="schemadana"></a>
<a id="schema_Dana"></a>
<a id="tocSdana"></a>
<a id="tocsdana"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The Dana payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_Eps">Eps</h2>
<!-- backwards compatibility -->
<a id="schemaeps"></a>
<a id="schema_Eps"></a>
<a id="tocSeps"></a>
<a id="tocseps"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The EPS payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_GCash">GCash</h2>
<!-- backwards compatibility -->
<a id="schemagcash"></a>
<a id="schema_GCash"></a>
<a id="tocSgcash"></a>
<a id="tocsgcash"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The GCash payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_GooglePay">GooglePay</h2>
<!-- backwards compatibility -->
<a id="schemagooglepay"></a>
<a id="schema_GooglePay"></a>
<a id="tocSgooglepay"></a>
<a id="tocsgooglepay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "token_data": {
    "protocol_version": "string",
    "signature": "string",
    "signed_message": "string",
    "tokenization_key": "string"
  },
  "token": {
    "id": "string",
    "expires_on": "2019-08-24T14:15:22Z"
  },
  "store_for_future_use": true,
  "phone": {
    "country_code": "+44",
    "number": "207 946 0000"
  },
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "last_name": "string",
    "middle_name": "string",
    "company_name": "string",
    "account_name_inquiry": true
  },
  "schemes": [
    "accel"
  ],
  "preferred_scheme": "visa"
}

```

The Google Pay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» token_data|object|false|write-only|none|
|»» protocol_version|string|false|write-only|The encryption and signing scheme used to create this message. If not set, the default is `ECv0`.|
|»» signature|string|false|write-only|The signature that verifies the message came from Google, created using `ECDSA`.|
|»» signed_message|string|false|write-only|A serialized JSON string containing the `encryptedMessage`, `ephemeralPublicKey`, and `tag`. To simplify the signature verification process, this value is serialized.|
|»» tokenization_key|string|false|write-only|The public key provided to the Google API in the `tokenizationSpecification.parameters.gatewayMerchantId` field.|
|» token|object|false|none|The Checkout.com Google Pay token.|
|»» id|string|true|none|The token identifier, prefixed by `tok_`.|
|»» expires_on|string(date-time)|false|none|The date and time the token expires, in ISO 8601 format.|
|» store_for_future_use|boolean|false|write-only|Set to `true` if you intend to reuse the payment credentials in subsequent payments. If set to `false`, a payment instrument will not be included in the payment response.|
|» phone|[PaymentSetupPhone](#schemapaymentsetupphone)|false|none|The customer's phone number.|
|» account_holder|[PaymentSetupAccountHolder](#schemapaymentsetupaccountholder)|false|none|Account holder details for the payment.|
|» schemes|[string]|false|read-only|The list of supported card scheme names.|
|» preferred_scheme|string|false|none|The preferred card scheme to process the payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|preferred_scheme|visa|
|preferred_scheme|mastercard|

<h2 id="tocS_Ideal">Ideal</h2>
<!-- backwards compatibility -->
<a id="schemaideal"></a>
<a id="schema_Ideal"></a>
<a id="tocSideal"></a>
<a id="tocsideal"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "description": "2 t-shirts"
}

```

The iDEAL payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» description|string|false|none|A description of the products or services being paid for. Do not include HTML tags or special characters, as these are rejected by iDEAL.|

<h2 id="tocS_KakaoPay">KakaoPay</h2>
<!-- backwards compatibility -->
<a id="schemakakaopay"></a>
<a id="schema_KakaoPay"></a>
<a id="tocSkakaopay"></a>
<a id="tocskakaopay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The KakaoPay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_Klarna">Klarna</h2>
<!-- backwards compatibility -->
<a id="schemaklarna"></a>
<a id="schema_Klarna"></a>
<a id="tocSklarna"></a>
<a id="tocsklarna"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "action": {
    "type": "sdk",
    "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
    "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
  },
  "account_holder": {
    "name": "string"
  },
  "iban": "DE89370400440532013000"
}

```

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|The Klarna payment method's details and configuration.|
|» action|object|false|read-only|The next available action for the payment method.|
|»» type|string|false|none|The type of action.|
|»» client_token|string|false|none|The client token for the Klarna SDK.|
|»» session_id|string|false|none|The session ID.|
|» account_holder|[KlarnaAccountHolder](#schemaklarnaaccountholder)|false|read-only|The account holder details returned by Klarna after the shopper completes verification.|
|» iban|string|false|read-only|The IBAN of the account used to complete Klarna verification.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|sdk|

<h2 id="tocS_KlarnaAccountHolder">KlarnaAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaklarnaaccountholder"></a>
<a id="schema_KlarnaAccountHolder"></a>
<a id="tocSklarnaaccountholder"></a>
<a id="tocsklarnaaccountholder"></a>

```json
{
  "name": "string"
}

```

The account holder details returned by Klarna after the shopper completes verification.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|The full name of the account holder.|

<h2 id="tocS_Knet">Knet</h2>
<!-- backwards compatibility -->
<a id="schemaknet"></a>
<a id="schema_Knet"></a>
<a id="tocSknet"></a>
<a id="tocsknet"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "language": "en"
}

```

The KNET payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» language|string|false|none|The customer's preferred language, as an ISO 639-1 code. For example, the language selected on your site, if the issuer's site supports it.<br><br>- `ar` - Arabic<br>- `en` - English|

#### Enumerated Values

|Property|Value|
|---|---|
|language|en|
|language|ar|

<h2 id="tocS_MBWay">MBWay</h2>
<!-- backwards compatibility -->
<a id="schemambway"></a>
<a id="schema_MBWay"></a>
<a id="tocSmbway"></a>
<a id="tocsmbway"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The MBWay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_MobilePay">MobilePay</h2>
<!-- backwards compatibility -->
<a id="schemamobilepay"></a>
<a id="schema_MobilePay"></a>
<a id="tocSmobilepay"></a>
<a id="tocsmobilepay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The MobilePay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_Multibanco">Multibanco</h2>
<!-- backwards compatibility -->
<a id="schemamultibanco"></a>
<a id="schema_Multibanco"></a>
<a id="tocSmultibanco"></a>
<a id="tocsmultibanco"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "account_holder_name": "string"
}

```

The Multibanco payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» account_holder_name|string|false|none|The account holder's name.|

<h2 id="tocS_Octopus">Octopus</h2>
<!-- backwards compatibility -->
<a id="schemaoctopus"></a>
<a id="schema_Octopus"></a>
<a id="tocSoctopus"></a>
<a id="tocsoctopus"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Octopus payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_OrderItem">OrderItem</h2>
<!-- backwards compatibility -->
<a id="schemaorderitem"></a>
<a id="schema_OrderItem"></a>
<a id="tocSorderitem"></a>
<a id="tocsorderitem"></a>

```json
{
  "name": "Battery Power Pack",
  "quantity": 1,
  "unit_price": 1000,
  "total_amount": 1000,
  "reference": "BA67A",
  "discount_amount": 150,
  "url": "https://example.com/products/my-item",
  "image_url": "https://example.com/products/my-item/image",
  "type": "digital"
}

```

A line item from the customer's order.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|The descriptive name of the line item.|
|quantity|integer|false|none|The quantity of the line item.|
|unit_price|number|false|none|The unit price of the line item, in <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="_blank">minor currency units</a>.|
|total_amount|number|false|none|The total cost of the line item, in <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="_blank">minor currency units</a>.<br><br>Include any tax and discounts applied, using the formula: `value = (quantity x unit_price) - discount_amount`.|
|reference|string|false|none|The line item reference or product stock keeping unit (SKU).|
|discount_amount|number|false|none|The discount applied to each invoice line item.|
|url|string|false|none|Link to the line item's product page.|
|image_url|string|false|none|Link to the item image to show in the order confirmation.|
|type|string|false|none|The item type. For example, physical or digital.|

<h2 id="tocS_OsType">OsType</h2>
<!-- backwards compatibility -->
<a id="schemaostype"></a>
<a id="schema_OsType"></a>
<a id="tocSostype"></a>
<a id="tocsostype"></a>

```json
"android"

```

The customer's operating system type. Required when `terminal_type` is not `web`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|android|
|*anonymous*|ios|

<h2 id="tocS_P24">P24</h2>
<!-- backwards compatibility -->
<a id="schemap24"></a>
<a id="schema_P24"></a>
<a id="tocSp24"></a>
<a id="tocsp24"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "account_holder": {
    "name": "string",
    "email": "user@example.com"
  }
}

```

The P24 (Przelewy24) payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» account_holder|object|false|none|The account holder's details.|
|»» name|string|false|none|The account holder's name.|
|»» email|string(email)|false|none|The account holder's email address.|

<h2 id="tocS_PayByBank">PayByBank</h2>
<!-- backwards compatibility -->
<a id="schemapaybybank"></a>
<a id="schema_PayByBank"></a>
<a id="tocSpaybybank"></a>
<a id="tocspaybybank"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "bank_id": "ob-natwest",
  "action": {
    "type": "select_bank",
    "banks": [
      {
        "bank_id": "ob-natwest",
        "display_name": "NatWest",
        "logo_url": "https://cdn.token.io/banks/natwest.png",
        "available": true
      }
    ]
  }
}

```

The Pay by Bank (Open Banking) payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» bank_id|string|false|none|The identifier of the bank the customer has selected for the payment.|
|» action|object|false|read-only|The next available action for the payment method.|
|»» type|string|false|none|The type of action.|
|»» banks|[object]|false|none|The list of banks available for the customer to select.|
|»»» bank_id|string|false|none|The unique identifier of the bank.|
|»»» display_name|string|false|none|The display name of the bank.|
|»»» logo_url|string|false|none|The URL of the bank's logo.|
|»»» available|boolean|false|none|Whether the bank is currently available for selection.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|select_bank|

<h2 id="tocS_PaymentMethodFlags">PaymentMethodFlags</h2>
<!-- backwards compatibility -->
<a id="schemapaymentmethodflags"></a>
<a id="schema_PaymentMethodFlags"></a>
<a id="tocSpaymentmethodflags"></a>
<a id="tocspaymentmethodflags"></a>

```json
[
  "string"
]

```

The list of error codes or indicators that highlight missing or invalid information.

### Properties

*None*

<h2 id="tocS_PaymentMethodInitialization">PaymentMethodInitialization</h2>
<!-- backwards compatibility -->
<a id="schemapaymentmethodinitialization"></a>
<a id="schema_PaymentMethodInitialization"></a>
<a id="tocSpaymentmethodinitialization"></a>
<a id="tocspaymentmethodinitialization"></a>

```json
{
  "initialization": "disabled"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|initialization|string|false|none|The initialization state of the payment method. <br><br>When you create a Payment Setup, this defaults to `disabled`.|

#### Enumerated Values

|Property|Value|
|---|---|
|initialization|disabled|
|initialization|enabled|

<h2 id="tocS_PaymentMethodStatus">PaymentMethodStatus</h2>
<!-- backwards compatibility -->
<a id="schemapaymentmethodstatus"></a>
<a id="schema_PaymentMethodStatus"></a>
<a id="tocSpaymentmethodstatus"></a>
<a id="tocspaymentmethodstatus"></a>

```json
"ready"

```

The payment method status.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|read-only|The payment method status.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|unavailable|
|*anonymous*|action_required|
|*anonymous*|ready|
|*anonymous*|initialization_required|
|*anonymous*|invalid|

<h2 id="tocS_PaymentSetup">PaymentSetup</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetup"></a>
<a id="schema_PaymentSetup"></a>
<a id="tocSpaymentsetup"></a>
<a id="tocspaymentsetup"></a>

```json
{
  "id": "string",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
      "type": "bacs",
      "action": {
        "type": "set_instrument"
      }
    },
    "klarna": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "sdk",
        "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
        "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
      },
      "account_holder": {
        "name": "string"
      },
      "iban": "DE89370400440532013000"
    },
    "stcpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "otp": "123456",
      "action": {
        "type": "otp"
      }
    },
    "tabby": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "bizum": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "paynow": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "qpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "national_id": "21234567890",
      "description": "string"
    },
    "eps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ideal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "2 t-shirts"
    },
    "knet": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "language": "en"
    },
    "bancontact": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "benefit": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "blik": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "partner_code": "999111"
    },
    "vipps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "twint": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "alipay_cn": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "mobilepay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "tamara": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "mbway": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "multibanco": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "wechatpay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "kakaopay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "octopus": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "p24": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "swish": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ach": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string",
        "identification": {
          "type": "string",
          "issuing_country": "string",
          "number": "string"
        }
      },
      "account_number": "string",
      "bank_code": "stringst",
      "country": "st"
    },
    "sepa": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "account_number": "string",
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "instrument_id": "src_wkq7552u245upl5h75x24554xy",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "account_number": "string",
      "bank_code": "string",
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "bank_id": "ob-natwest",
      "action": {
        "type": "select_bank",
        "banks": [
          {
            "bank_id": "ob-natwest",
            "display_name": "NatWest",
            "logo_url": "https://cdn.token.io/banks/natwest.png",
            "available": true
          }
        ]
      }
    },
    "paypal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping",
      "action": {
        "type": "sdk",
        "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
      }
    },
    "cashapp": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "customer_profile_sharing": true,
      "customer_profile": {
        "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
        "cashtag": "$CASHTAG_C_TOKEN",
        "reference_id": "value",
        "full_name": "John Middle Doe",
        "given_name": "John",
        "middle_name": "Middle",
        "family_name": "Doe",
        "suffix": "Jr.",
        "birth_date": "1990-01-01",
        "address": {
          "address_line_1": "123 Main St",
          "address_line_2": "string",
          "address_line_3": "string",
          "locality": "Springfield",
          "sublocality": "string",
          "administrative_district_level_1": "IL",
          "postal_code": "62701",
          "country": "US"
        },
        "phone_number": "5555555555",
        "email_address": "cash@cash.com",
        "customer_since": "1970-01-18T12:46:04.8Z"
      },
      "reference": "ORDER-99",
      "action": {
        "type": "redirect",
        "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
      }
    },
    "googlepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token_data": {
        "protocol_version": "string",
        "signature": "string",
        "signed_message": "string",
        "tokenization_key": "string"
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "applepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token_data": {
        "version": "string",
        "data": "string",
        "signature": "string",
        "header": {
          "ephemeral_public_key": "string",
          "public_key_hash": "string",
          "transaction_id": "string"
        }
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "card": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string"
      },
      "details": {
        "number": "string",
        "last4": "string",
        "bin": "string",
        "scheme": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "name": "string",
        "cvv": "string",
        "stored": true,
        "expires_on": "2019-08-24T14:15:22Z",
        "allow_update": true
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "stablecoin": {
      "status": "ready",
      "flags": [
        "string"
      ]
    }
  },
  "available_payment_methods": [
    "card",
    "klarna",
    "stcpay",
    "stablecoin"
  ],
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "latest_payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "requested_on": "2019-08-24T14:15:22Z",
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 6,
      "expiry_year": 2025,
      "name": "Bruce Wayne",
      "scheme": "VISA",
      "scheme_local": "Cartes_Bancaires",
      "local_schemes": [
        "cartes_bancaires",
        "visa"
      ],
      "last4": "9996",
      "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
      "bin": "45434748",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "card_wallet_type": "applepay",
      "issuer": "GOTHAM STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "avs_check": "S",
      "cvv_check": "Y",
      "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
      "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
      "account_update_status": "card_updated",
      "account_update_failure_code": "VAU009",
      "account_holder": {}
    },
    "destination": {
      "type": "bank_account",
      "id": "string"
    },
    "amount": 6540,
    "amount_requested": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "payment_plan": {
      "amount_variability": "Variable",
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "approved": true,
    "expires_on": "string",
    "status": "Authorized",
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "3ds": {
      "downgraded": false,
      "enrolled": "Y",
      "signature_valid": "Y",
      "authentication_response": "Y",
      "authentication_status_reason": "string",
      "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
      "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
      "eci": "string",
      "version": "2.1.0",
      "exemption": "low_value",
      "exemption_applied": "string",
      "challenged": true,
      "upgrade_reason": "sca_retry",
      "trusted_listing": {
        "status": "Y",
        "source": "01"
      }
    },
    "authentication": {
      "experience": "3ds"
    },
    "risk": {
      "flagged": true,
      "score": 22
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne",
      "summary": {
        "registration_date": "2023-05-01",
        "first_transaction_date": "2023-07-01",
        "last_payment_date": "2023-08-01",
        "total_order_count": 15,
        "last_payment_amount": 500,
        "is_premium_customer": true,
        "is_returning_customer": true,
        "lifetime_value": 500
      }
    },
    "billing_descriptor": {
      "name": "SUPERHEROES.COM",
      "city": "GOTHAM",
      "reference": "string",
      "local_descriptors": [
        {
          "name": "漢字",
          "character_set": "kanji"
        }
      ]
    },
    "shipping": {
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      }
    },
    "payment_ip": "90.197.169.245",
    "sender": {
      "type": "individual",
      "reference": "8285282045818",
      "first_name": "John",
      "last_name": "Jones",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    },
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ],
    "recipient": {
      "dob": "1985-05-15",
      "account_number": "5555554444",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "zip": "SW1A",
      "first_name": "John",
      "last_name": "Jones"
    },
    "processing": {
      "preferred_scheme": "cartes_bancaires",
      "app_id": "com.iap.linker_portal",
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ],
      "partner_customer_id": "2102209000001106125F8",
      "partner_payment_id": "440644309099499894406",
      "partner_code": "999111",
      "failure_code": "partner_error",
      "partner_response_code": "ER_WRONG_TICKET",
      "tax_amount": 1000,
      "locale": "en-US",
      "retrieval_reference_number": "909913440644",
      "partner_order_id": "string",
      "partner_status": "string",
      "partner_transaction_id": "string",
      "partner_error_codes": [
        "string"
      ],
      "partner_merchant_advice_code": "24",
      "partner_error_message": "string",
      "partner_authorization_code": "string",
      "partner_authorization_response_code": "string",
      "partner_fraud_status": "string",
      "pan_type_processed": "fpan",
      "fallback_source_used": false,
      "custom_payment_method_ids": [
        "string"
      ],
      "aft": true,
      "merchant_category_code": "5311",
      "scheme_merchant_id": "123456",
      "scheme": "ACCEL",
      "scheme_transaction_link_id": "string"
    },
    "items": [
      {
        "type": "digital",
        "sub_type": "stablecoin",
        "name": "Necklace",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "commodity_code": "DEF123",
        "unit_of_measure": "metres",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "tax_exempt": true,
        "discount_amount": 1000,
        "wxpay_goods_id": "1001",
        "url": "string",
        "image_url": "string",
        "service_ends_on": "2025-01-01",
        "purchase_country": "GB",
        "foreign_retailer_amount": 200
      }
    ],
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    },
    "eci": "06",
    "scheme_id": "488341541494658",
    "actions": [
      {
        "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
        "type": "Authorization",
        "response_code": "10000",
        "response_summary": "Approved"
      }
    ],
    "retry": {
      "enabled": true,
      "attempts_made": 0,
      "max_attempts": 6,
      "ends_on": "2019-08-24T14:15:22Z",
      "next_attempt_on": "2019-08-24T14:15:22Z"
    },
    "cko_network_token_available": false,
    "instruction": {
      "purpose": "financial_services"
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "actions": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
      },
      "authorize": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
      },
      "refund": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
      }
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|read-only|none|
|processing_channel_id|string|true|none|The processing channel to use for the payment.|
|amount|number|true|none|The payment amount, in the <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="_blank">minor currency unit</a>.|
|currency|string|true|none|The currency of the payment, as a three-letter <a href="https://www.checkout.com/docs/developer-resources/codes/currency-codes" target="_blank">ISO currency code</a>.|
|presentment_details|[PaymentSetupPresentmentDetails](#schemapaymentsetuppresentmentdetails)|false|none|The amount and currency to present to the customer, when the settlement<br>currency differs from the customer-facing currency.|
|payment_type|string|false|none|The type of payment.<br><br>You must provide this field for card payments in which the cardholder is not present. For example, if the transaction is a recurring payment, or a mail order/telephone order (MOTO) payment.|
|reference|string|false|none|A reference you can use to identify the payment. For example, an order number.|
|description|string|false|none|A description of the payment.|
|payment_methods|object|false|none|The payment methods that are enabled on your account and available for use.|
|» auto_confirm|string|false|none|The payment method that automatically confirms the payment when it is ready.|
|» instrument|[PaymentSetupInstrument](#schemapaymentsetupinstrument)|false|none|The instrument payment method's details and configuration.|
|» klarna|[Klarna](#schemaklarna)|false|none|none|
|» stcpay|[StcPay](#schemastcpay)|false|none|The stc pay payment method's details and configuration.|
|» tabby|[Tabby](#schematabby)|false|none|The Tabby payment method's details and configuration.|
|» bizum|[Bizum](#schemabizum)|false|read-only|The Bizum payment method's details and configuration.|
|» paynow|[PayNow](#schemapaynow)|false|read-only|The PayNow payment method's details and configuration.|
|» qpay|[Qpay](#schemaqpay)|false|none|The QPay payment method's details and configuration.|
|» eps|[Eps](#schemaeps)|false|read-only|The EPS payment method's details and configuration.|
|» ideal|[Ideal](#schemaideal)|false|none|The iDEAL payment method's details and configuration.|
|» knet|[Knet](#schemaknet)|false|none|The KNET payment method's details and configuration.|
|» bancontact|[Bancontact](#schemabancontact)|false|none|The Bancontact payment method's details and configuration.|
|» benefit|[Benefit](#schemabenefit)|false|read-only|The Benefit payment method's details and configuration.|
|» blik|[Blik](#schemablik)|false|none|The Blik payment method's details and configuration.|
|» vipps|[Vipps](#schemavipps)|false|read-only|The Vipps payment method's details and configuration.|
|» twint|[Twint](#schematwint)|false|read-only|The Twint payment method's details and configuration.|
|» alipay_cn|[AlipayCn](#schemaalipaycn)|false|none|The Alipay CN payment method's details and configuration.|
|» alipay_hk|[AlipayHK](#schemaalipayhk)|false|none|The Alipay HK payment method's details and configuration.|
|» gcash|[GCash](#schemagcash)|false|none|The GCash payment method's details and configuration.|
|» tng|[Tng](#schematng)|false|none|The TNG payment method's details and configuration.|
|» dana|[Dana](#schemadana)|false|none|The Dana payment method's details and configuration.|
|» mobilepay|[MobilePay](#schemamobilepay)|false|read-only|The MobilePay payment method's details and configuration.|
|» tamara|[Tamara](#schematamara)|false|none|The Tamara payment method's details and configuration.|
|» mbway|[MBWay](#schemambway)|false|read-only|The MBWay payment method's details and configuration.|
|» multibanco|[Multibanco](#schemamultibanco)|false|none|The Multibanco payment method's details and configuration.|
|» wechatpay|[WeChatPay](#schemawechatpay)|false|read-only|The WeChatPay payment method's details and configuration.|
|» kakaopay|[KakaoPay](#schemakakaopay)|false|none|The KakaoPay payment method's details and configuration.|
|» truemoney|[TrueMoney](#schematruemoney)|false|none|The TrueMoney payment method's details and configuration.|
|» octopus|[Octopus](#schemaoctopus)|false|read-only|The Octopus payment method's details and configuration.|
|» p24|[P24](#schemap24)|false|none|The P24 (Przelewy24) payment method's details and configuration.|
|» alma|[Alma](#schemaalma)|false|none|The Alma payment method's details and configuration.|
|» swish|[Swish](#schemaswish)|false|none|The Swish payment method's details and configuration.|
|» sequra|[Sequra](#schemasequra)|false|none|The Sequra payment method's details and configuration.|
|» ach|[Ach](#schemaach)|false|none|The ACH payment method's details and configuration.|
|» sepa|[Sepa](#schemasepa)|false|none|The SEPA payment method's details and configuration.|
|» bacs|[Bacs](#schemabacs)|false|none|The Bacs payment method's details and configuration.|
|» paybybank|[PayByBank](#schemapaybybank)|false|none|The Pay by Bank (Open Banking) payment method's details and configuration.|
|» paypal|[PayPal](#schemapaypal)|false|none|The PayPal payment method's details and configuration.|
|» cashapp|[CashApp](#schemacashapp)|false|none|The Cash App payment method's details and configuration.|
|» googlepay|[GooglePay](#schemagooglepay)|false|none|The Google Pay payment method's details and configuration.|
|» applepay|[ApplePay](#schemaapplepay)|false|none|The Apple Pay payment method's details and configuration.|
|» card|[Card](#schemacard)|false|none|The Card payment method's details and configuration.|
|» stablecoin|[Stablecoin](#schemastablecoin)|false|none|The Stablecoin payment method's details and configuration.|
|available_payment_methods|[string]|false|read-only|An ordered list of available payment method names. The order indicates<br>the recommended presentation priority, with the first item being the<br>highest priority.|
|settings|object|false|none|Settings for the Payment Setup.|
|» success_url|string(uri)|false|none|The URL to redirect the customer to, if the payment is successful.<br><br>For payment methods with a redirect, this value overrides the default success redirect URL configured on your account.|
|» failure_url|string(uri)|false|none|The URL to redirect the customer to, if the payment is unsuccessful.<br><br>For payment methods with a redirect, this value overrides the default failure redirect URL configured on your account.|
|» capture|boolean|false|none|Indicates whether to capture the payment immediately.|
|» excluded_payment_methods|[string]|false|none|The list of payment methods excluded from the Payment Setup.|
|risk|object|false|none|Risk assessment settings for the Payment Setup.|
|» enabled|boolean|false|none|Indicates whether a risk assessment should be performed.|
|customer|object|false|none|The customer's details.|
|» country|string|false|none|The two-letter ISO country code of the customer for this payment.|
|» id|string|false|none|The unique identifier of the customer.|
|» email|object|false|none|Details of the customer's email.|
|»» address|string|false|none|The customer's email address.|
|»» verified|boolean|false|none|Specifies whether the customer's email address is verified.|
|» name|string|false|none|The customer's full name.|
|» tax_number|string|false|none|The customer's tax identification number.|
|» phone|[PaymentSetupPhone](#schemapaymentsetupphone)|false|none|The customer's phone number.|
|» device|object|false|none|Details of the customer's device.|
|»» locale|string|false|none|The locale of the device.|
|»» fingerprint|string|false|none|A unique identifier for the customer's device.|
|»» ipv4|string|false|none|The customer's device IPv4 address, used by some payment methods for risk and eligibility checks.|
|»» ipv6|string|false|none|The customer's device IPv6 address, used by some payment methods for risk and eligibility checks.|
|»» client|string|false|none|The type of client the customer uses to initiate the payment.|
|»» os|string|false|none|The operating system of the customer's device.|
|» merchant_account|[PaymentSetupMerchantAccount](#schemapaymentsetupmerchantaccount)|false|none|Details of the account the customer holds with the merchant.|
|order|object|false|none|The customer's order details.|
|» items|[allOf]|false|none|A list of items in the order.|
|» shipping|[PaymentSetupShipping](#schemapaymentsetupshipping)|false|none|The customer's shipping details.|
|» sub_merchants|[allOf]|false|none|The details of the sub-merchants.|
|» invoice_id|string|false|none|The unique identifier for the invoice.|
|» shipping_amount|integer|false|none|The total shipping amount for the order.|
|» discount_amount|integer|false|none|The discount amount the merchant applied to the transaction.|
|» tax_amount|integer|false|none|The total tax amount for the order.|
|» tipping_amount|integer(int64)|false|none|The total tipping amount for the order.|
|» surcharge_amount|integer(int64)|false|none|The total surcharge amount for the order.|
|» amount_allocations|[allOf]|false|none|The sub-entities that the payment is being processed on behalf of.|
|billing|[PaymentSetupBilling](#schemapaymentsetupbilling)|false|none|The billing details for the payment.|
|industry|object|false|none|Industry-specific information.|
|» airline|[allOf]|false|none|none|
|» accommodation|[allOf]|false|none|none|
|account_funding_transaction|[PaymentSetupAccountFundingTransaction](#schemapaymentsetupaccountfundingtransaction)|false|none|Account funding transaction details for the payment.|
|terminal|[PaymentSetupTerminal](#schemapaymentsetupterminal)|false|none|Terminal details.|
|billing_descriptor|[PaymentSetupBillingDescriptor](#schemapaymentsetupbillingdescriptor)|false|none|The billing descriptor for payment.|
|metadata|object|false|none|A set of key/value pairs you can attach to a payment. It can be useful for storing additional information about the payment.|
|» **additionalProperties**|any|false|none|none|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|string|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|number|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|boolean|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|latest_payment|[PaymentDetails](#schemapaymentdetails)|false|read-only|The latest [payment](https://api-reference.checkout.com/tag/payments/GET/payments/%7Bid%7D.responses.200.id) for this setup. Returned after a successful confirmation, including auto-confirm during setup creation.|

#### Enumerated Values

|Property|Value|
|---|---|
|payment_type|regular|
|payment_type|recurring|
|payment_type|moto|
|payment_type|installment|
|payment_type|pay_later|
|payment_type|unscheduled|
|client|web|
|client|mobile_web|
|client|app|
|os|android|
|os|ios|

<h2 id="tocS_PaymentSetupAccommodation">PaymentSetupAccommodation</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupaccommodation"></a>
<a id="schema_PaymentSetupAccommodation"></a>
<a id="tocSpaymentsetupaccommodation"></a>
<a id="tocspaymentsetupaccommodation"></a>

```json
{
  "name": "Checkout Lodge",
  "booking_reference": "REF9083748",
  "check_in_date": "2025-04-11",
  "check_out_date": "2025-04-18",
  "address": {
    "address_line1": "123 High Street",
    "city": "London",
    "state": "Greater London",
    "country": "GB",
    "zip": "NE1 1CK"
  },
  "number_of_rooms": 2,
  "guests": [
    {
      "first_name": "John",
      "last_name": "Smith",
      "date_of_birth": "1970-03-19"
    }
  ],
  "room": [
    {
      "rate": 42.3,
      "number_of_nights": 5,
      "type": "deluxe"
    }
  ],
  "total_number_of_guests": 2,
  "refundable": true,
  "delivery_recipient": "jane.smith@example.com",
  "host": {
    "registration_date": "2020-01-01",
    "total_reservation_count": 150
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|For lodging, contains the lodging name that appears on the<br>storefront/customer receipts. For cruise, contains the ship name booked for the cruise.|
|booking_reference|string|false|none|A unique identifier for the booking.|
|check_in_date|string(date)|false|none|For lodging bookings, the customer's check-in date.<br>For cruise bookings, the cruise departure date. Also referred to as the sail date.|
|check_out_date|string(date)|false|none|For lodging bookings, the customer's check-out date.<br>For cruise bookings, the cruise return date.|
|address|object|false|none|The accommodation's address.|
|» address_line1|string|false|none|The first line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state or county.|
|» country|string|false|none|The address country, in ISO 3166-1 alpha-2 format.|
|» zip|string|false|none|The zip code or postal code.|
|number_of_rooms|integer|false|none|The total number of rooms booked for the accommodation.|
|guests|[object]|false|none|The list of guests staying at the accommodation.|
|» first_name|string|false|none|The guest's first name.|
|» last_name|string|false|none|The guest's last name.|
|» date_of_birth|string(date)|false|none|The guest's date of birth.|
|room|[object]|false|none|The list of rooms booked by the customer.|
|» rate|number|false|none|The rate or cost of the room per day.|
|» number_of_nights|integer|false|none|The number of nights the room is booked for.|
|» type|string|false|none|The room class or type booked. For example, `deluxe`.|
|total_number_of_guests|integer|false|none|The total number of guests on the booking.|
|refundable|boolean|false|none|Specifies whether the booking is refundable.|
|delivery_recipient|string|false|none|The recipient the booking confirmation is delivered to.|
|host|object|false|none|Details about the host of the accommodation.|
|» registration_date|string(date)|false|none|The date the host registered.|
|» total_reservation_count|integer|false|none|The total number of reservations the host has received.|

<h2 id="tocS_PaymentSetupAccountFundingTransaction">PaymentSetupAccountFundingTransaction</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupaccountfundingtransaction"></a>
<a id="schema_PaymentSetupAccountFundingTransaction"></a>
<a id="tocSpaymentsetupaccountfundingtransaction"></a>
<a id="tocspaymentsetupaccountfundingtransaction"></a>

```json
{
  "enabled": true,
  "purpose": "financial_services",
  "sender": {
    "date_of_birth": "2000-01-01",
    "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
    "identification": {
      "type": "passport",
      "number": "1234567890",
      "issuing_country": "US"
    }
  },
  "recipient": {
    "date_of_birth": "2000-01-01",
    "account_number": "string",
    "first_name": "string",
    "last_name": "string",
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  }
}

```

Account funding transaction details for the payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|false|none|Whether to process this payment as an account funding transaction.|
|purpose|string|false|none|Specifies the purpose of the account funding transaction.|
|sender|object|false|none|Account funding transaction sender details.|
|» date_of_birth|string(date)|false|none|Date of birth of the sender (yyyy-mm-dd).|
|» reference|string|false|none|The unique reference for the sender of the payment.|
|» identification|object|false|none|Sender identification details.|
|»» type|string|false|none|The type of identification used to identify the sender.|
|»» number|string|false|none|The identification number.|
|»» issuing_country|string|false|none|The two-letter ISO country code of the country that issued the identification|
|recipient|object|false|none|Account funding transaction recipient details.|
|» date_of_birth|string(date)|false|none|Date of birth of the recipient (yyyy-mm-dd).|
|» account_number|string|false|none|Any identifier like part of the PAN (first six digits and last four digits), an IBAN, an internal account number, or a phone number related to the primary recipient's account|
|» first_name|string|false|none|The recipient's first name.|
|» last_name|string|false|none|The recipient's last name.|
|» address|[PaymentSetupAddress](#schemapaymentsetupaddress)|false|none|A physical address.|

#### Enumerated Values

|Property|Value|
|---|---|
|purpose|donations|
|purpose|education|
|purpose|emergency_need|
|purpose|expatriation|
|purpose|family_support|
|purpose|financial_services|
|purpose|gifts|
|purpose|income|
|purpose|insurance|
|purpose|investment|
|purpose|it_services|
|purpose|leisure|
|purpose|loan_payment|
|purpose|medical_treatment|
|purpose|other|
|purpose|pension|
|purpose|royalties|
|purpose|savings|
|purpose|travel_and_tourism|
|type|passport|
|type|driving_license|
|type|national_id|

<h2 id="tocS_PaymentSetupAccountHolder">PaymentSetupAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupaccountholder"></a>
<a id="schema_PaymentSetupAccountHolder"></a>
<a id="tocSpaymentsetupaccountholder"></a>
<a id="tocspaymentsetupaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "last_name": "string",
  "middle_name": "string",
  "company_name": "string",
  "account_name_inquiry": true
}

```

Account holder details for the payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The card account holder type.|
|first_name|string|false|none|The card account holder's first name.|
|last_name|string|false|none|The card account holder's last name.|
|middle_name|string|false|none|The card account holder's middle name.|
|company_name|string|false|none|The card account holder's company name.|
|account_name_inquiry|boolean|false|none|Indicates whether the ANI (account name inquiry) check is performed with the card scheme (Visa or Mastercard).|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|government|
|type|corporate|

<h2 id="tocS_PaymentSetupAddress">PaymentSetupAddress</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupaddress"></a>
<a id="schema_PaymentSetupAddress"></a>
<a id="tocSpaymentsetupaddress"></a>
<a id="tocspaymentsetupaddress"></a>

```json
{
  "address_line1": "10 Canterbury Road",
  "address_line2": "Flat 2",
  "city": "London",
  "state": "Greater London",
  "zip": "NE1 1KO",
  "country": "GB"
}

```

A physical address.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address_line1|string|false|none|The first line of the address.|
|address_line2|string|false|none|The second line of the address.|
|city|string|false|none|The address city.|
|state|string|false|none|The address state or county.|
|zip|string|false|none|The postal or zip code.|
|country|string|false|none|The address country, in ISO 3166-1 alpha-2 format.|

<h2 id="tocS_PaymentSetupAirline">PaymentSetupAirline</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupairline"></a>
<a id="schema_PaymentSetupAirline"></a>
<a id="tocSpaymentsetupairline"></a>
<a id="tocspaymentsetupairline"></a>

```json
{
  "ticket": {
    "number": "0742464639523",
    "issue_date": "2025-05-01",
    "issuing_carrier_code": "042",
    "travel_package_indicator": "A",
    "travel_agency_name": "Checkout Travel Agents",
    "travel_agency_code": "91114362"
  },
  "passengers": [
    {
      "first_name": "John",
      "last_name": "Smith",
      "date_of_birth": "1990-10-31",
      "address": {
        "country": "GB"
      }
    }
  ],
  "flight_leg_details": [
    {
      "flight_number": "BA1483",
      "carrier_code": "BA",
      "class_of_travelling": "W",
      "departure_airport": "LHR",
      "departure_date": "2025-10-13",
      "departure_time": "18:30",
      "arrival_airport": "JFK",
      "stop_over_code": "X",
      "fare_basis_code": "WUP14B"
    }
  ],
  "total_number_of_passengers": 1,
  "travel_type": "international",
  "trip_type": "one_way",
  "refundable": true,
  "delivery_recipient": "jane.smith@example.com",
  "ancillaries": "extra_baggage",
  "insurance": {
    "type": "travel",
    "company": "AXA",
    "price": {
      "amount": 500,
      "currency": "SAR"
    }
  }
}

```

Details about the airline ticket and flights the customer booked.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ticket|object|false|none|Details about the airline ticket.|
|» number|string|false|none|The ticket's unique identifier.|
|» issue_date|string(date)|false|none|The date the airline ticket was issued.|
|» issuing_carrier_code|string|false|none|The carrier code of the ticket issuer.|
|» travel_package_indicator|string|false|none|The travel package indicator, as one of the following codes:<br><br>  - `A` - Airline flight reservation<br>  - `B` - Car rental and airline reservation<br>  - `C` - Car rental reservation<br>  - `N` - Unknown|
|» travel_agency_name|string|false|none|The name of the travel agency.|
|» travel_agency_code|string|false|none|The IATA or ARC unique identifier for the travel agency that issues the ticket.|
|passengers|[object]|false|none|The list of passengers on the flight.|
|» first_name|string|false|none|The passenger's first name.|
|» last_name|string|false|none|The passenger's last name.|
|» date_of_birth|string(date)|false|none|The passenger's date of birth.|
|» address|object|false|none|Details about the passenger's address.|
|»» country|string|false|none|The two-letter ISO country code of the passenger's country of residence.|
|flight_leg_details|[allOf]|false|none|The list of flight legs booked by the customer.|
|total_number_of_passengers|integer|false|none|The total number of passengers on the booking.|
|travel_type|string|false|none|The type of travel. For example, `domestic` or `international`.|
|trip_type|string|false|none|The type of trip. For example, `one_way` or `round_trip`.|
|refundable|boolean|false|none|Specifies whether the booking is refundable.|
|delivery_recipient|string|false|none|The recipient the ticket is delivered to.|
|ancillaries|string|false|none|Any additional add-ons purchased with the booking. For example, `extra_baggage`.|
|insurance|object|false|none|Details about the travel insurance purchased with the booking.|
|» type|string|false|none|The type of insurance.|
|» company|string|false|none|The name of the insurance company.|
|» price|object|false|none|The price of the insurance.|
|»» amount|number|false|none|The insurance amount, in the minor currency unit.|
|»» currency|string|false|none|The currency of the insurance amount, as a three-letter ISO currency code.|

<h2 id="tocS_PaymentSetupAmountAllocation">PaymentSetupAmountAllocation</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupamountallocation"></a>
<a id="schema_PaymentSetupAmountAllocation"></a>
<a id="tocSpaymentsetupamountallocation"></a>
<a id="tocspaymentsetupamountallocation"></a>

```json
{
  "id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "amount": 1000,
  "reference": "ORD-5023-4E89",
  "commission": {
    "amount": 1000,
    "percentage": 1.125
  }
}

```

Amount Allocations

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The id of the sub-entity.|
|amount|integer(int64)|true|none|The split amount - this will be credited to your sub-entity's currency account. The sum of all split amounts must be equal to the payment amount.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|reference|string|false|none|A reference you can later use to identify this split, such as an order number.|
|commission|object|false|none|Commission you'd like to collect from this split - this will be credited to your currency account. The commission cannot exceed the split amount.<br><br>Commission = (`amount` * `commission.percentage`) + `commission.amount`|
|» amount|integer(int64)|false|none|Optional fixed amount of commission to collect.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency unit</a>.|
|» percentage|number|false|none|Optional percentage of commission to collect.<br><br>Supports up to 8 decimal places.|

<h2 id="tocS_PaymentSetupBilling">PaymentSetupBilling</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupbilling"></a>
<a id="schema_PaymentSetupBilling"></a>
<a id="tocSpaymentsetupbilling"></a>
<a id="tocspaymentsetupbilling"></a>

```json
{
  "address": {
    "address_line1": "10 Canterbury Road",
    "address_line2": "Flat 2",
    "city": "London",
    "state": "Greater London",
    "zip": "NE1 1KO",
    "country": "GB"
  }
}

```

The billing details for the payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address|[PaymentSetupAddress](#schemapaymentsetupaddress)|false|none|A physical address.|

<h2 id="tocS_PaymentSetupBillingDescriptor">PaymentSetupBillingDescriptor</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupbillingdescriptor"></a>
<a id="schema_PaymentSetupBillingDescriptor"></a>
<a id="tocSpaymentsetupbillingdescriptor"></a>
<a id="tocspaymentsetupbillingdescriptor"></a>

```json
{
  "name": "Checkout.com",
  "city": "London",
  "reference": "Payment for order 123456"
}

```

The billing descriptor for payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|false|none|A dynamic description of the payment.|
|city|string|false|none|The city from which the payment was made.|
|reference|string|false|none|The reference shown on the statement.|

<h2 id="tocS_PaymentSetupFlightLegDetails">PaymentSetupFlightLegDetails</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupflightlegdetails"></a>
<a id="schema_PaymentSetupFlightLegDetails"></a>
<a id="tocSpaymentsetupflightlegdetails"></a>
<a id="tocspaymentsetupflightlegdetails"></a>

```json
{
  "flight_number": "BA1483",
  "carrier_code": "BA",
  "class_of_travelling": "W",
  "departure_airport": "LHR",
  "departure_date": "2025-10-13",
  "departure_time": "18:30",
  "arrival_airport": "JFK",
  "stop_over_code": "X",
  "fare_basis_code": "WUP14B"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|flight_number|string|false|none|The flight identifier.|
|carrier_code|string|false|none|The IATA 2-letter accounting code (PAX) that identifies the carrier. Required if the airline data includes leg details.|
|class_of_travelling|string|false|none|A one-letter identifier for the travel class. For example:<br><br>- `F` - First class<br>- `J` - Business class<br>- `W` - Premium economy class<br>- `Y` - Economy class|
|departure_airport|string|false|none|The IATA three-letter airport code for the departure airport. Required if the airline data includes leg details.|
|departure_date|string(date)|false|none|The date of the scheduled take-off.|
|departure_time|string|false|none|The time of the scheduled take-off.|
|arrival_airport|string|false|none|The IATA three-letter airport code for the destination airport. Required if the airline data includes leg details.|
|stop_over_code|string|false|none|A one-letter code that indicates whether the passenger is entitled to make a stopover. Specify `O` or a blank space if the passenger is entitled. Specify `X` if the passenger is not entitled.|
|fare_basis_code|string|false|none|The alphanumeric fare basis code.|

<h2 id="tocS_PaymentSetupInstrument">PaymentSetupInstrument</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupinstrument"></a>
<a id="schema_PaymentSetupInstrument"></a>
<a id="tocSpaymentsetupinstrument"></a>
<a id="tocspaymentsetupinstrument"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
  "type": "bacs",
  "action": {
    "type": "set_instrument"
  }
}

```

The instrument payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» id|string|false|none|The unique identifier of the selected instrument.|
|» type|string|false|read-only|The type of the instrument.|
|» action|object|false|read-only|The next available action for the payment method.|
|»» type|string|false|none|The type of action.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|set_instrument|

<h2 id="tocS_PaymentSetupMerchantAccount">PaymentSetupMerchantAccount</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupmerchantaccount"></a>
<a id="schema_PaymentSetupMerchantAccount"></a>
<a id="tocSpaymentsetupmerchantaccount"></a>
<a id="tocspaymentsetupmerchantaccount"></a>

```json
{
  "id": "1234",
  "registration_date": "2023-05-01",
  "last_modified": "2023-05-01",
  "returning_customer": true,
  "first_transaction_date": "2023-09-15",
  "last_transaction_date": "2025-03-28",
  "total_order_count": 6,
  "last_payment_amount": 55.99
}

```

Details of the account the customer holds with the merchant.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The merchant's unique identifier for the customer's account.|
|registration_date|string(date)|false|none|The date the customer registered their account with the merchant.|
|last_modified|string(date)|false|none|The date the customer's account with the merchant was last modified.|
|returning_customer|boolean|false|none|Specifies if the customer is a returning customer.|
|first_transaction_date|string(date)|false|none|The date of the customer's first transaction.|
|last_transaction_date|string(date)|false|none|The date of the customer's most recent transaction.|
|total_order_count|integer|false|none|The total number of orders made by the customer.|
|last_payment_amount|number|false|none|The payment amount of the customer's most recent transaction.|

<h2 id="tocS_PaymentSetupPaymentMethod">PaymentSetupPaymentMethod</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetuppaymentmethod"></a>
<a id="schema_PaymentSetupPaymentMethod"></a>
<a id="tocSpaymentsetuppaymentmethod"></a>
<a id="tocspaymentsetuppaymentmethod"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|[PaymentMethodStatus](#schemapaymentmethodstatus)|false|none|The payment method status.|
|flags|[PaymentMethodFlags](#schemapaymentmethodflags)|false|none|The list of error codes or indicators that highlight missing or invalid information.|

<h2 id="tocS_PaymentSetupPhone">PaymentSetupPhone</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupphone"></a>
<a id="schema_PaymentSetupPhone"></a>
<a id="tocSpaymentsetupphone"></a>
<a id="tocspaymentsetupphone"></a>

```json
{
  "country_code": "+44",
  "number": "207 946 0000"
}

```

The customer's phone number.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|false|none|The phone number's <a<br>href="https://www.checkout.com/docs/resources/codes/country-codes"<br>target="_blank">international country calling code</a>.|
|number|string|false|none|The phone number.|

<h2 id="tocS_PaymentSetupPresentmentDetails">PaymentSetupPresentmentDetails</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetuppresentmentdetails"></a>
<a id="schema_PaymentSetupPresentmentDetails"></a>
<a id="tocSpaymentsetuppresentmentdetails"></a>
<a id="tocspaymentsetuppresentmentdetails"></a>

```json
{
  "amount": 110,
  "currency": "EUR"
}

```

The amount and currency to present to the customer, when the settlement
currency differs from the customer-facing currency.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer(int64)|false|none|The presentment amount, in the minor currency unit.|
|currency|string|false|none|The presentment currency, as a three-letter ISO currency code.|

<h2 id="tocS_PaymentSetupResponse">PaymentSetupResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupresponse"></a>
<a id="schema_PaymentSetupResponse"></a>
<a id="tocSpaymentsetupresponse"></a>
<a id="tocspaymentsetupresponse"></a>

```json
{
  "id": "string",
  "processing_channel_id": "pc_q4dbxom5jbgudnjzjpz7j2z6uq",
  "amount": 10000,
  "currency": "GBP",
  "presentment_details": {
    "amount": 110,
    "currency": "EUR"
  },
  "payment_type": "regular",
  "reference": "REF-0987-475",
  "description": "Set of 3 t-shirts",
  "payment_methods": {
    "auto_confirm": "card",
    "instrument": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "id": "src_wmlfc3zttb4uzmk6snpwb43jbi",
      "type": "bacs",
      "action": {
        "type": "set_instrument"
      }
    },
    "klarna": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "action": {
        "type": "sdk",
        "client_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw",
        "session_id": "0b1d9815-165e-42e2-8867-35bc03789e00"
      },
      "account_holder": {
        "name": "string"
      },
      "iban": "DE89370400440532013000"
    },
    "stcpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "otp": "123456",
      "action": {
        "type": "otp"
      }
    },
    "tabby": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "payment_types": [
        "pay_later"
      ]
    },
    "bizum": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "paynow": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "qpay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "national_id": "21234567890",
      "description": "string"
    },
    "eps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ideal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "description": "2 t-shirts"
    },
    "knet": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "language": "en"
    },
    "bancontact": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "benefit": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "blik": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "partner_code": "999111"
    },
    "vipps": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "twint": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "alipay_cn": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "alipay_hk": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "gcash": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "tng": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "dana": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "mobilepay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "tamara": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "risk_assessment": {
        "premium_customer": false,
        "risk_score": 42,
        "order_count_last24h": 0,
        "linked_device_count": 2
      }
    },
    "mbway": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "multibanco": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder_name": "string"
    },
    "wechatpay": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "kakaopay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "truemoney": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "terminal_type": "web",
      "os_type": "android"
    },
    "octopus": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "p24": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "name": "string",
        "email": "user@example.com"
      }
    },
    "alma": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "swish": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "billing_descriptor": "string",
      "account_holder": {
        "first_name": "John",
        "last_name": "Smith"
      }
    },
    "sequra": {
      "status": "ready",
      "flags": [
        "string"
      ]
    },
    "ach": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_type": "savings",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "date_of_birth": "string",
        "identification": {
          "type": "string",
          "issuing_country": "string",
          "number": "string"
        }
      },
      "account_number": "string",
      "bank_code": "stringst",
      "country": "st"
    },
    "sepa": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string"
      },
      "account_number": "string",
      "country": "st",
      "currency": "string",
      "mandate": {
        "id": "string",
        "type": "core",
        "date_of_signature": "2019-08-24"
      }
    },
    "bacs": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "instrument_id": "src_wkq7552u245upl5h75x24554xy",
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "company_name": "string",
        "email": "john.smith@example.com"
      },
      "account_number": "string",
      "bank_code": "string",
      "country": "st",
      "currency": "string",
      "allow_partial_match": false
    },
    "paybybank": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "bank_id": "ob-natwest",
      "action": {
        "type": "select_bank",
        "banks": [
          {
            "bank_id": "ob-natwest",
            "display_name": "NatWest",
            "logo_url": "https://cdn.token.io/banks/natwest.png",
            "available": true
          }
        ]
      }
    },
    "paypal": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "user_action": "pay_now",
      "brand_name": "Acme Corporation",
      "shipping_preference": "no_shipping",
      "action": {
        "type": "sdk",
        "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
      }
    },
    "cashapp": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "initialization": "disabled",
      "customer_profile_sharing": true,
      "customer_profile": {
        "customer_id": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4",
        "cashtag": "$CASHTAG_C_TOKEN",
        "reference_id": "value",
        "full_name": "John Middle Doe",
        "given_name": "John",
        "middle_name": "Middle",
        "family_name": "Doe",
        "suffix": "Jr.",
        "birth_date": "1990-01-01",
        "address": {
          "address_line_1": "123 Main St",
          "address_line_2": "string",
          "address_line_3": "string",
          "locality": "Springfield",
          "sublocality": "string",
          "administrative_district_level_1": "IL",
          "postal_code": "62701",
          "country": "US"
        },
        "phone_number": "5555555555",
        "email_address": "cash@cash.com",
        "customer_since": "1970-01-18T12:46:04.8Z"
      },
      "reference": "ORDER-99",
      "action": {
        "type": "redirect",
        "redirect_url": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
      }
    },
    "googlepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token_data": {
        "protocol_version": "string",
        "signature": "string",
        "signed_message": "string",
        "tokenization_key": "string"
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "applepay": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token_data": {
        "version": "string",
        "data": "string",
        "signature": "string",
        "header": {
          "ephemeral_public_key": "string",
          "public_key_hash": "string",
          "transaction_id": "string"
        }
      },
      "token": {
        "id": "string",
        "expires_on": "2019-08-24T14:15:22Z"
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "card": {
      "status": "ready",
      "flags": [
        "string"
      ],
      "token": {
        "id": "string"
      },
      "details": {
        "number": "string",
        "last4": "string",
        "bin": "string",
        "scheme": "string",
        "expiry_month": 0,
        "expiry_year": 0,
        "name": "string",
        "cvv": "string",
        "stored": true,
        "expires_on": "2019-08-24T14:15:22Z",
        "allow_update": true
      },
      "store_for_future_use": true,
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "account_holder": {
        "type": "individual",
        "first_name": "string",
        "last_name": "string",
        "middle_name": "string",
        "company_name": "string",
        "account_name_inquiry": true
      },
      "schemes": [
        "accel"
      ],
      "preferred_scheme": "visa"
    },
    "stablecoin": {
      "status": "ready",
      "flags": [
        "string"
      ]
    }
  },
  "available_payment_methods": [
    "card",
    "klarna",
    "stcpay",
    "stablecoin"
  ],
  "settings": {
    "success_url": "https://example.com/payments/success",
    "failure_url": "https://example.com/payments/fail",
    "capture": true,
    "excluded_payment_methods": [
      "card",
      "klarna",
      "stcpay"
    ]
  },
  "risk": {
    "enabled": true
  },
  "customer": {
    "country": "GB",
    "id": "cus_123456789",
    "email": {
      "address": "johnsmith@example.com",
      "verified": true
    },
    "name": "John Smith",
    "tax_number": "GB123456789",
    "phone": {
      "country_code": "+44",
      "number": "207 946 0000"
    },
    "device": {
      "locale": "en_GB",
      "fingerprint": "fp_abc123xyz",
      "ipv4": "203.0.113.0",
      "ipv6": "2001:db8:85a3::8a2e:370:7334",
      "client": "web",
      "os": "android"
    },
    "merchant_account": {
      "id": "1234",
      "registration_date": "2023-05-01",
      "last_modified": "2023-05-01",
      "returning_customer": true,
      "first_transaction_date": "2023-09-15",
      "last_transaction_date": "2025-03-28",
      "total_order_count": 6,
      "last_payment_amount": 55.99
    }
  },
  "order": {
    "items": [
      {
        "name": "Battery Power Pack",
        "quantity": 1,
        "unit_price": 1000,
        "total_amount": 1000,
        "reference": "BA67A",
        "discount_amount": 150,
        "url": "https://example.com/products/my-item",
        "image_url": "https://example.com/products/my-item/image",
        "type": "digital"
      }
    ],
    "shipping": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com",
      "phone": {
        "country_code": "+44",
        "number": "207 946 0000"
      },
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      },
      "method": "string",
      "delay": 3
    },
    "sub_merchants": [
      {
        "id": "SUB12345",
        "product_category": "Electronics",
        "number_of_sales": 500,
        "registration_date": "2023-01-15"
      }
    ],
    "invoice_id": "inv_123456789",
    "shipping_amount": 5,
    "discount_amount": 10,
    "tax_amount": 2,
    "tipping_amount": 2,
    "surcharge_amount": 2,
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ]
  },
  "billing": {
    "address": {
      "address_line1": "10 Canterbury Road",
      "address_line2": "Flat 2",
      "city": "London",
      "state": "Greater London",
      "zip": "NE1 1KO",
      "country": "GB"
    }
  },
  "industry": {
    "airline": [
      {
        "ticket": {
          "number": "0742464639523",
          "issue_date": "2025-05-01",
          "issuing_carrier_code": "042",
          "travel_package_indicator": "A",
          "travel_agency_name": "Checkout Travel Agents",
          "travel_agency_code": "91114362"
        },
        "passengers": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1990-10-31",
            "address": {
              "country": "GB"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "BA1483",
            "carrier_code": "BA",
            "class_of_travelling": "W",
            "departure_airport": "LHR",
            "departure_date": "2025-10-13",
            "departure_time": "18:30",
            "arrival_airport": "JFK",
            "stop_over_code": "X",
            "fare_basis_code": "WUP14B"
          }
        ],
        "total_number_of_passengers": 1,
        "travel_type": "international",
        "trip_type": "one_way",
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "ancillaries": "extra_baggage",
        "insurance": {
          "type": "travel",
          "company": "AXA",
          "price": {
            "amount": 500,
            "currency": "SAR"
          }
        }
      }
    ],
    "accommodation": [
      {
        "name": "Checkout Lodge",
        "booking_reference": "REF9083748",
        "check_in_date": "2025-04-11",
        "check_out_date": "2025-04-18",
        "address": {
          "address_line1": "123 High Street",
          "city": "London",
          "state": "Greater London",
          "country": "GB",
          "zip": "NE1 1CK"
        },
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "John",
            "last_name": "Smith",
            "date_of_birth": "1970-03-19"
          }
        ],
        "room": [
          {
            "rate": 42.3,
            "number_of_nights": 5,
            "type": "deluxe"
          }
        ],
        "total_number_of_guests": 2,
        "refundable": true,
        "delivery_recipient": "jane.smith@example.com",
        "host": {
          "registration_date": "2020-01-01",
          "total_reservation_count": 150
        }
      }
    ]
  },
  "account_funding_transaction": {
    "enabled": true,
    "purpose": "financial_services",
    "sender": {
      "date_of_birth": "2000-01-01",
      "reference": "0fc88634-78c1-4286-9cb6-6ca358730c8c",
      "identification": {
        "type": "passport",
        "number": "1234567890",
        "issuing_country": "US"
      }
    },
    "recipient": {
      "date_of_birth": "2000-01-01",
      "account_number": "string",
      "first_name": "string",
      "last_name": "string",
      "address": {
        "address_line1": "10 Canterbury Road",
        "address_line2": "Flat 2",
        "city": "London",
        "state": "Greater London",
        "zip": "NE1 1KO",
        "country": "GB"
      }
    }
  },
  "terminal": {
    "id": "12345678",
    "local_date_time": "2026-05-26T13:05:14+01:00"
  },
  "billing_descriptor": {
    "name": "Checkout.com",
    "city": "London",
    "reference": "Payment for order 123456"
  },
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "latest_payment": {
    "id": "pay_mbabizu24mvu3mela5njyhpit4",
    "requested_on": "2019-08-24T14:15:22Z",
    "source": {
      "type": "card",
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy",
      "billing_address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      },
      "expiry_month": 6,
      "expiry_year": 2025,
      "name": "Bruce Wayne",
      "scheme": "VISA",
      "scheme_local": "Cartes_Bancaires",
      "local_schemes": [
        "cartes_bancaires",
        "visa"
      ],
      "last4": "9996",
      "fingerprint": "F639CAB2745BEE4140BF86DF6B6D6",
      "bin": "45434748",
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "card_wallet_type": "applepay",
      "issuer": "GOTHAM STATE BANK",
      "issuer_country": "US",
      "product_id": "F",
      "product_type": "CLASSIC",
      "avs_check": "S",
      "cvv_check": "Y",
      "payment_account_reference": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4",
      "encrypted_card_number": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz...",
      "account_update_status": "card_updated",
      "account_update_failure_code": "VAU009",
      "account_holder": {}
    },
    "destination": {
      "type": "bank_account",
      "id": "string"
    },
    "amount": 6540,
    "amount_requested": 6540,
    "currency": "USD",
    "payment_type": "Recurring",
    "payment_plan": {
      "amount_variability": "Variable",
      "days_between_payments": 28,
      "total_number_of_payments": 5,
      "current_payment_number": 3,
      "expiry": "20251031",
      "name": "Subscription 1234",
      "start_date": "20260507",
      "amount": 1234
    },
    "reference": "ORD-5023-4E89",
    "description": "Set of 3 masks",
    "approved": true,
    "expires_on": "string",
    "status": "Authorized",
    "balances": {
      "total_authorized": 6540,
      "total_voided": 0,
      "available_to_void": 6540,
      "total_captured": 0,
      "available_to_capture": 6540,
      "total_refunded": 0,
      "available_to_refund": 0
    },
    "3ds": {
      "downgraded": false,
      "enrolled": "Y",
      "signature_valid": "Y",
      "authentication_response": "Y",
      "authentication_status_reason": "string",
      "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
      "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
      "eci": "string",
      "version": "2.1.0",
      "exemption": "low_value",
      "exemption_applied": "string",
      "challenged": true,
      "upgrade_reason": "sca_retry",
      "trusted_listing": {
        "status": "Y",
        "source": "01"
      }
    },
    "authentication": {
      "experience": "3ds"
    },
    "risk": {
      "flagged": true,
      "score": 22
    },
    "customer": {
      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
      "email": "brucewayne@gmail.com",
      "name": "Bruce Wayne",
      "summary": {
        "registration_date": "2023-05-01",
        "first_transaction_date": "2023-07-01",
        "last_payment_date": "2023-08-01",
        "total_order_count": 15,
        "last_payment_amount": 500,
        "is_premium_customer": true,
        "is_returning_customer": true,
        "lifetime_value": 500
      }
    },
    "billing_descriptor": {
      "name": "SUPERHEROES.COM",
      "city": "GOTHAM",
      "reference": "string",
      "local_descriptors": [
        {
          "name": "漢字",
          "character_set": "kanji"
        }
      ]
    },
    "shipping": {
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "phone": {
        "country_code": "+1",
        "number": "415 555 2671"
      }
    },
    "payment_ip": "90.197.169.245",
    "sender": {
      "type": "individual",
      "reference": "8285282045818",
      "first_name": "John",
      "last_name": "Jones",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      }
    },
    "amount_allocations": [
      {
        "id": "ent_w4jelhppmfiufdnatam37wrfc4",
        "amount": 1000,
        "reference": "ORD-5023-4E89",
        "commission": {
          "amount": 1000,
          "percentage": 1.125
        }
      }
    ],
    "recipient": {
      "dob": "1985-05-15",
      "account_number": "5555554444",
      "address": {
        "address_line1": "123 High St.",
        "address_line2": "Flat 456",
        "city": "London",
        "state": "str",
        "zip": "SW1A 1AA",
        "country": "GB"
      },
      "zip": "SW1A",
      "first_name": "John",
      "last_name": "Jones"
    },
    "processing": {
      "preferred_scheme": "cartes_bancaires",
      "app_id": "com.iap.linker_portal",
      "airline_data": [
        {
          "ticket": {
            "number": "045-21351455613",
            "issue_date": "2023-05-20",
            "issuing_carrier_code": "AI",
            "travel_package_indicator": "B",
            "travel_agency_name": "World Tours",
            "travel_agency_code": "01"
          },
          "passenger": [
            {
              "first_name": "John",
              "last_name": "White",
              "date_of_birth": "1990-05-26",
              "address": {
                "country": "US"
              }
            }
          ],
          "flight_leg_details": [
            {
              "flight_number": "101",
              "carrier_code": "BA",
              "class_of_travelling": "J",
              "departure_airport": "LHR",
              "departure_date": "2023-06-19",
              "departure_time": "15:30",
              "arrival_airport": "LAX",
              "stop_over_code": "x",
              "fare_basis_code": "SPRSVR"
            }
          ]
        }
      ],
      "accommodation_data": [
        {
          "name": "The Sea View Hotel",
          "booking_reference": "HOTEL123",
          "check_in_date": "2023-06-20",
          "check_out_date": "2023-06-23",
          "address": {
            "address_line1": "123 Beach Road",
            "zip": "10001"
          },
          "state": "FL",
          "country": "USA",
          "city": "Los Angeles",
          "number_of_rooms": 2,
          "guests": [
            {
              "first_name": "Jane",
              "last_name": "Doe",
              "date_of_birth": "1985-07-14"
            }
          ],
          "room": [
            {
              "rate": "70",
              "number_of_nights_at_room_rate": "3"
            }
          ],
          "property_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ],
          "customer_service_phone": [
            {
              "country_code": "44",
              "number": "7123456789"
            }
          ]
        }
      ],
      "partner_customer_id": "2102209000001106125F8",
      "partner_payment_id": "440644309099499894406",
      "partner_code": "999111",
      "failure_code": "partner_error",
      "partner_response_code": "ER_WRONG_TICKET",
      "tax_amount": 1000,
      "locale": "en-US",
      "retrieval_reference_number": "909913440644",
      "partner_order_id": "string",
      "partner_status": "string",
      "partner_transaction_id": "string",
      "partner_error_codes": [
        "string"
      ],
      "partner_merchant_advice_code": "24",
      "partner_error_message": "string",
      "partner_authorization_code": "string",
      "partner_authorization_response_code": "string",
      "partner_fraud_status": "string",
      "pan_type_processed": "fpan",
      "fallback_source_used": false,
      "custom_payment_method_ids": [
        "string"
      ],
      "aft": true,
      "merchant_category_code": "5311",
      "scheme_merchant_id": "123456",
      "scheme": "ACCEL",
      "scheme_transaction_link_id": "string"
    },
    "items": [
      {
        "type": "digital",
        "sub_type": "stablecoin",
        "name": "Necklace",
        "quantity": 2,
        "unit_price": 50,
        "reference": "858818ac",
        "commodity_code": "DEF123",
        "unit_of_measure": "metres",
        "total_amount": 29000,
        "tax_rate": 2000,
        "tax_amount": 1000,
        "tax_exempt": true,
        "discount_amount": 1000,
        "wxpay_goods_id": "1001",
        "url": "string",
        "image_url": "string",
        "service_ends_on": "2025-01-01",
        "purchase_country": "GB",
        "foreign_retailer_amount": 200
      }
    ],
    "metadata": {
      "coupon_code": "NY2018",
      "partner_id": 123989
    },
    "eci": "06",
    "scheme_id": "488341541494658",
    "actions": [
      {
        "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
        "type": "Authorization",
        "response_code": "10000",
        "response_summary": "Approved"
      }
    ],
    "retry": {
      "enabled": true,
      "attempts_made": 0,
      "max_attempts": 6,
      "ends_on": "2019-08-24T14:15:22Z",
      "next_attempt_on": "2019-08-24T14:15:22Z"
    },
    "cko_network_token_available": false,
    "instruction": {
      "purpose": "financial_services"
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "actions": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/actions"
      },
      "authorize": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/authorizations"
      },
      "refund": {
        "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44/refund"
      }
    }
  }
}

```

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetup](#schemapaymentsetup)|false|none|none|

<h2 id="tocS_PaymentSetupShipping">PaymentSetupShipping</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupshipping"></a>
<a id="schema_PaymentSetupShipping"></a>
<a id="tocSpaymentsetupshipping"></a>
<a id="tocspaymentsetupshipping"></a>

```json
{
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane.doe@example.com",
  "phone": {
    "country_code": "+44",
    "number": "207 946 0000"
  },
  "address": {
    "address_line1": "10 Canterbury Road",
    "address_line2": "Flat 2",
    "city": "London",
    "state": "Greater London",
    "zip": "NE1 1KO",
    "country": "GB"
  },
  "method": "string",
  "delay": 3
}

```

The customer's shipping details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The customer's first name.|
|last_name|string|false|none|The customer's last name.|
|email|string|false|none|The customer's email address.|
|phone|[PaymentSetupPhone](#schemapaymentsetupphone)|false|none|The customer's phone number.|
|address|[PaymentSetupAddress](#schemapaymentsetupaddress)|false|none|A physical address.|
|method|string|false|none|The shipping method the customer selected. <br><br>For more information on which values you can specify, refer to the payment method's external API reference.|
|delay|integer|false|none|The number of days between the order date and the expected delivery date.|

<h2 id="tocS_PaymentSetupSubMerchant">PaymentSetupSubMerchant</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupsubmerchant"></a>
<a id="schema_PaymentSetupSubMerchant"></a>
<a id="tocSpaymentsetupsubmerchant"></a>
<a id="tocspaymentsetupsubmerchant"></a>

```json
{
  "id": "SUB12345",
  "product_category": "Electronics",
  "number_of_sales": 500,
  "registration_date": "2023-01-15"
}

```

Details about a sub-merchant in the order.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier for the sub-merchant.|
|product_category|string|false|none|The product category for the sub-merchant.|
|number_of_sales|integer|false|none|The number of orders the sub-merchant has processed.|
|registration_date|string(date)|false|none|The date the sub-merchant was registered.|

<h2 id="tocS_PaymentSetupTerminal">PaymentSetupTerminal</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupterminal"></a>
<a id="schema_PaymentSetupTerminal"></a>
<a id="tocSpaymentsetupterminal"></a>
<a id="tocspaymentsetupterminal"></a>

```json
{
  "id": "12345678",
  "local_date_time": "2026-05-26T13:05:14+01:00"
}

```

Terminal details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|Terminal identifier.|
|local_date_time|string(date-time)|false|none|The local date and time on the terminal, in ISO 8601 format.|

<h2 id="tocS_PaymentSetupValidationError">PaymentSetupValidationError</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsetupvalidationerror"></a>
<a id="schema_PaymentSetupValidationError"></a>
<a id="tocSpaymentsetupvalidationerror"></a>
<a id="tocspaymentsetupvalidationerror"></a>

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "amount_required"
  ]
}

```

The validation errors flagged with the request.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|The unique identifier of the flagged request.|
|error_type|string|false|none|The type of error flagged.|
|error_codes|[string]|false|none|The error codes returned by the failed request.|

<h2 id="tocS_PayNow">PayNow</h2>
<!-- backwards compatibility -->
<a id="schemapaynow"></a>
<a id="schema_PayNow"></a>
<a id="tocSpaynow"></a>
<a id="tocspaynow"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The PayNow payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_PayPal">PayPal</h2>
<!-- backwards compatibility -->
<a id="schemapaypal"></a>
<a id="schema_PayPal"></a>
<a id="tocSpaypal"></a>
<a id="tocspaypal"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "user_action": "pay_now",
  "brand_name": "Acme Corporation",
  "shipping_preference": "no_shipping",
  "action": {
    "type": "sdk",
    "order_id": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
  }
}

```

The PayPal payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» user_action|string|false|none|The user action for the PayPal widget.<br><br>- `pay_now` - After the customer clicks the PayPal button, the customer is redirected to a page to enter payment details and immediately directed to finalize the payment.<br>- `continue` - After the customer clicks the PayPal button, the customer is redirected to a page to enter payment details and then redirected back to the merchant's site to review and finalize the payment.|
|» brand_name|string|false|none|The brand name to display in the PayPal checkout experience.|
|» shipping_preference|string|false|none|Where to obtain the shipping information.<br><br>- `no_shipping` - Redacts the shipping address from the PayPal pages.<br>- `get_from_file` - Obtains the shipping address from the customer's PayPal account.<br>- `set_provided_address` - Uses the shipping address provided by the merchant.|
|» action|object|false|read-only|The next available action for the payment method.|
|»» type|string|false|none|The type of action.|
|»» order_id|string|false|none|The PayPal order ID to use with the PayPal SDK.|

#### Enumerated Values

|Property|Value|
|---|---|
|user_action|pay_now|
|user_action|continue|
|shipping_preference|no_shipping|
|shipping_preference|get_from_file|
|shipping_preference|set_provided_address|
|type|sdk|

<h2 id="tocS_Qpay">Qpay</h2>
<!-- backwards compatibility -->
<a id="schemaqpay"></a>
<a id="schema_Qpay"></a>
<a id="tocSqpay"></a>
<a id="tocsqpay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "national_id": "21234567890",
  "description": "string"
}

```

The QPay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» national_id|string|false|write-only|The Qatari national ID. Must start with 2 or 3, followed by 10 digits.|
|» description|string|false|none|A description of the payment order. Alphanumeric characters only.|

<h2 id="tocS_Sepa">Sepa</h2>
<!-- backwards compatibility -->
<a id="schemasepa"></a>
<a id="schema_Sepa"></a>
<a id="tocSsepa"></a>
<a id="tocssepa"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "last_name": "string",
    "company_name": "string"
  },
  "account_number": "string",
  "country": "st",
  "currency": "string",
  "mandate": {
    "id": "string",
    "type": "core",
    "date_of_signature": "2019-08-24"
  }
}

```

The SEPA payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» account_holder|object|false|none|The account holder details.|
|»» type|string|false|none|The type of account holder.|
|»» first_name|string|false|none|The first name of the account holder.|
|»» last_name|string|false|none|The last name of the account holder.|
|»» company_name|string|false|none|The legal name of a registered company that holds the account.|
|» account_number|string|false|write-only|The account holder's IBAN.|
|» country|string|false|none|The account's country, as an ISO 3166-1 alpha-2 code.|
|» currency|string|false|none|The account holder's account currency.|
|» mandate|object|false|none|The mandate details.|
|»» id|string|false|none|The ID of the mandate.|
|»» type|string|false|none|The type of mandate.|
|»» date_of_signature|string(date)|false|none|The date the mandate was signed.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|
|type|corporate|
|type|core|
|type|b2b|

<h2 id="tocS_Sequra">Sequra</h2>
<!-- backwards compatibility -->
<a id="schemasequra"></a>
<a id="schema_Sequra"></a>
<a id="tocSsequra"></a>
<a id="tocssequra"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Sequra payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_Stablecoin">Stablecoin</h2>
<!-- backwards compatibility -->
<a id="schemastablecoin"></a>
<a id="schema_Stablecoin"></a>
<a id="tocSstablecoin"></a>
<a id="tocsstablecoin"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Stablecoin payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_StcPay">StcPay</h2>
<!-- backwards compatibility -->
<a id="schemastcpay"></a>
<a id="schema_StcPay"></a>
<a id="tocSstcpay"></a>
<a id="tocsstcpay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "otp": "123456",
  "action": {
    "type": "otp"
  }
}

```

The stc pay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» otp|string|false|write-only|The one-time password (OTP) for stc pay.|
|» action|object|false|read-only|The next available action for the payment method.|
|»» type|string|false|none|The type of action.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|otp|

<h2 id="tocS_Swish">Swish</h2>
<!-- backwards compatibility -->
<a id="schemaswish"></a>
<a id="schema_Swish"></a>
<a id="tocSswish"></a>
<a id="tocsswish"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "billing_descriptor": "string",
  "account_holder": {
    "first_name": "John",
    "last_name": "Smith"
  }
}

```

The Swish payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» billing_descriptor|string|false|none|A description that appears on the customer's billing statement.|
|» account_holder|object|false|none|The account holder's details.|
|»» first_name|string|false|none|The account holder's first name.|
|»» last_name|string|false|none|The account holder's last name.|

<h2 id="tocS_Tabby">Tabby</h2>
<!-- backwards compatibility -->
<a id="schematabby"></a>
<a id="schema_Tabby"></a>
<a id="tocStabby"></a>
<a id="tocstabby"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "payment_types": [
    "pay_later"
  ]
}

```

The Tabby payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» payment_types|[string]|false|none|The available payment types for Tabby (For example, `installments`).|

<h2 id="tocS_Tamara">Tamara</h2>
<!-- backwards compatibility -->
<a id="schematamara"></a>
<a id="schema_Tamara"></a>
<a id="tocStamara"></a>
<a id="tocstamara"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "initialization": "disabled",
  "risk_assessment": {
    "premium_customer": false,
    "risk_score": 42,
    "order_count_last24h": 0,
    "linked_device_count": 2
  }
}

```

The Tamara payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentMethodInitialization](#schemapaymentmethodinitialization)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» risk_assessment|object|false|none|Risk signals about the customer, forwarded to Tamara with the payment.|
|»» premium_customer|boolean|false|none|Specifies whether the customer is a premium customer.|
|»» risk_score|integer|false|none|The customer's risk score.|
|»» order_count_last24h|integer|false|none|The number of orders the customer has made in the last 24 hours.|
|»» linked_device_count|integer|false|none|The number of devices linked to the customer.|

<h2 id="tocS_TerminalType">TerminalType</h2>
<!-- backwards compatibility -->
<a id="schematerminaltype"></a>
<a id="schema_TerminalType"></a>
<a id="tocSterminaltype"></a>
<a id="tocsterminaltype"></a>

```json
"web"

```

The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|web|
|*anonymous*|wap|
|*anonymous*|app|

<h2 id="tocS_Tng">Tng</h2>
<!-- backwards compatibility -->
<a id="schematng"></a>
<a id="schema_Tng"></a>
<a id="tocStng"></a>
<a id="tocstng"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The TNG payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_TrueMoney">TrueMoney</h2>
<!-- backwards compatibility -->
<a id="schematruemoney"></a>
<a id="schema_TrueMoney"></a>
<a id="tocStruemoney"></a>
<a id="tocstruemoney"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ],
  "terminal_type": "web",
  "os_type": "android"
}

```

The TrueMoney payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» terminal_type|[TerminalType](#schematerminaltype)|false|none|The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.|
|» os_type|[OsType](#schemaostype)|false|none|The customer's operating system type. Required when `terminal_type` is not `web`.|

<h2 id="tocS_Twint">Twint</h2>
<!-- backwards compatibility -->
<a id="schematwint"></a>
<a id="schema_Twint"></a>
<a id="tocStwint"></a>
<a id="tocstwint"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Twint payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_Vipps">Vipps</h2>
<!-- backwards compatibility -->
<a id="schemavipps"></a>
<a id="schema_Vipps"></a>
<a id="tocSvipps"></a>
<a id="tocsvipps"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The Vipps payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_WeChatPay">WeChatPay</h2>
<!-- backwards compatibility -->
<a id="schemawechatpay"></a>
<a id="schema_WeChatPay"></a>
<a id="tocSwechatpay"></a>
<a id="tocswechatpay"></a>

```json
{
  "status": "ready",
  "flags": [
    "string"
  ]
}

```

The WeChatPay payment method's details and configuration.

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSetupPaymentMethod](#schemapaymentsetuppaymentmethod)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|

<h2 id="tocS_Shipping">Shipping</h2>
<!-- backwards compatibility -->
<a id="schemashipping"></a>
<a id="schema_Shipping"></a>
<a id="tocSshipping"></a>
<a id="tocsshipping"></a>

```json
{
  "first_name": "John",
  "last_name": "Smith",
  "email": "john.smith@example.com",
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "from_address_zip": "123456",
  "timeframe": "SameDay",
  "method": "BillingAddress",
  "delay": 5
}

```

The shipping details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|first_name|string|false|none|The first name of the person receiving the goods or the service.|
|last_name|string|false|none|The last name of the person receiving the goods or the service.|
|email|string|false|none|The email address associated with the shipping order.|
|address|[Address](#schemaaddress)|false|none|The shipping address.|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number associated with the shipping address.|
|from_address_zip|string|false|none|The postal code or zip code of the location being shipped from.|
|timeframe|string|false|none|Indicates the merchandise delivery timeframe. The following values will be supported by Checkout.com, otherwise your specific value will be passed through to the provider.|
|method|string|false|none|Indicates the shipping method chosen for the transaction. The following values will be supported by Checkout.com, otherwise your specific value will be passed through to the provider.|
|delay|integer|false|none|The number of days by which the shipping is delayed.|

#### Enumerated Values

|Property|Value|
|---|---|
|timeframe|ElectronicDelivery|
|timeframe|SameDay|
|timeframe|Overnight|
|timeframe|TwoDayOrMore|
|method|Digital|
|method|PickUp|
|method|BillingAddress|
|method|OtherAddress|

<h2 id="tocS_Subscription">Subscription</h2>
<!-- backwards compatibility -->
<a id="schemasubscription"></a>
<a id="schema_Subscription"></a>
<a id="tocSsubscription"></a>
<a id="tocssubscription"></a>

```json
{
  "id": "string"
}

```

Subscription

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The ID or reference linking a series of recurring payments together.|

<h2 id="tocS_TrackingInfo">TrackingInfo</h2>
<!-- backwards compatibility -->
<a id="schematrackinginfo"></a>
<a id="schema_TrackingInfo"></a>
<a id="tocStrackinginfo"></a>
<a id="tocstrackinginfo"></a>

```json
{
  "return_shipping_company": "DHL US",
  "return_tracking_number": "GM275322484009027685",
  "return_tracking_uri": "https://example.com/tracking/GM275322484009027685",
  "shipping_company": "DHL US",
  "tracking_number": "GM275322484009027685",
  "tracking_uri": "https://example.com/tracking/GM275322484009027685"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|return_shipping_company|string|false|none|Name of the shipping company for the return shipment (as specific as possible).|
|return_tracking_number|string|false|none|Tracking number for the return shipment.|
|return_tracking_uri|string|false|none|URL where the customer can track the return shipment.|
|shipping_company|string|false|none|Name of the shipping company (as specific as possible)|
|tracking_number|string|false|none|Tracking number for the shipment.|
|tracking_uri|string|false|none|URI where the customer can track their shipment.|

<h2 id="tocS_TrustedListing">TrustedListing</h2>
<!-- backwards compatibility -->
<a id="schematrustedlisting"></a>
<a id="schema_TrustedListing"></a>
<a id="tocStrustedlisting"></a>
<a id="tocstrustedlisting"></a>

```json
{
  "status": "Y",
  "source": "01"
}

```

TrustedListing

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|false|none|Enables the communication of trusted beneficiary status between the Access Control Server (ACS), the Directory Server (DS), and the 3D Secure (3DS) Requestor.<br/><br/><br>• Y = 3DS Requestor is allowlisted by cardholder<br/> • N = 3DS Requestor is not allowlisted by cardholder<br/> • E = Not eligible as determined by issuer<br/> • P = Pending confirmation by cardholder<br/> • R = Cardholder rejected<br/> • U = Allowlist status unknown, unavailable, or does not apply|
|source|string|false|none|The system setting trusted beneficiary status<br/><br/><br>• 01 = 3DS Server <br/> • 02 = DS <br/> • 03 = ACS <br/> • 80-99 = DS-specific values <br/>|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Y|
|status|N|
|status|E|
|status|P|
|status|R|
|status|U|

<h2 id="tocS_UnreferencedRefundRequest">UnreferencedRefundRequest</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequest"></a>
<a id="schema_UnreferencedRefundRequest"></a>
<a id="tocSunreferencedrefundrequest"></a>
<a id="tocsunreferencedrefundrequest"></a>

```json
{
  "source": {
    "type": "currency_account",
    "id": "stringstringstringstringstrin"
  },
  "destination": {
    "type": "string",
    "token": "stringstringstringstringstring",
    "account_holder": {
      "type": "individual",
      "first_name": "string",
      "middle_name": "string",
      "last_name": "string",
      "billing_address": {
        "address_line1": "string",
        "address_line2": "string",
        "city": "string",
        "state": "str",
        "zip": "string",
        "country": "st"
      },
      "phone": {
        "country_code": "string",
        "number": "string"
      },
      "identification": {
        "type": "passport",
        "number": "string",
        "issuing_country": "st",
        "date_of_expiry": "stringstri"
      },
      "email": "string",
      "date_of_birth": "stringstri",
      "country_of_birth": "st"
    }
  },
  "instruction": {
    "funds_transfer_type": "string",
    "purpose": "family_support"
  },
  "amount": 1,
  "currency": "GBP",
  "payment_type": "UnreferencedRefund",
  "processing_channel_id": "string",
  "reference": "string",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  },
  "previous_payment_id": "pay_fun26akvvjjerahhctaq2uzhu4",
  "segment": {
    "brand": "Acme Corporation",
    "business_category": "Inward Payments",
    "market": "UK"
  },
  "processing": {
    "processing_speed": "fast"
  }
}

```

Unreferenced Refund

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|object|true|none|The source of the unreferenced refund.|
|» type|string|true|none|The unreferenced refund source type.|
|» id|string|true|none|The ID of the currency account that will fund the unreferenced refund.|
|destination|[UnreferencedRefundRequestDestination](#schemaunreferencedrefundrequestdestination)|true|none|The destination of the unreferenced refund.|
|instruction|object|false|none|Additional details about the unreferenced refund instruction.|
|» funds_transfer_type|string|false|none|**Required** if `processing.processing_speed` is `fast`.<br><br>Value of this field should be based on the destination card scheme: <br>  - For Visa, use `MI`<br>  - For Mastercard, use `C60`|
|» purpose|string|false|none|The purpose of the unreferenced refund.<br><br>This field is required if the card's `issuer_country` is one of:<br><br>  - `AR` (Argentina)<br>  - `BD` (Bangladesh)<br>  - `CL` (Chile)<br>  - `CO` (Colombia)<br>  - `EG` (Egypt)<br>  - `IN` (India)<br>  - `MX` (Mexico)<br><br>To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).|
|amount|any|true|none|The amount in minor currency|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[Amount](#schemaamount)|false|none|The amount in the minor currency.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|number|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/developer-resources/codes/currency-codes" target="blank">ISO currency code</a> of the payment.<br>|
|payment_type|string|true|none|The type of the payment|
|processing_channel_id|string|true|none|The processing channel identifier|
|reference|string|false|none|An internal reference you can later use to identify this payment|
|metadata|object|false|none|A set of key-value pairs that you can attach to the refund request. It can be useful for storing additional information in a structured format. **Note**: This object only allows one level of depth, so cannot accept non-primitive data types such as objects or arrays.|
|previous_payment_id|string|false|none|The previous related payment identifier. This could be the ID of the payment that you want to refund.|
|segment|[Segment](#schemasegment)|false|none|The dimension details about business segment for payment request. At least one dimension required.|
|processing|object|false|none|Returns information related to the processing of the payment.|
|» processing_speed|string|false|none|The speed at which the unreferenced refund is processed. <br><br>Only applicable for <a href="https://www.checkout.com/docs/payments/manage-payments/refund-a-payment/refund-a-payment-without-a-reference">unreferenced refunds</a>.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|currency_account|
|purpose|family_support|
|purpose|expatriation|
|purpose|travel_and_tourism|
|purpose|education|
|purpose|medical_treatment|
|purpose|emergency_need|
|purpose|leisure|
|purpose|savings|
|purpose|gifts|
|purpose|donations|
|purpose|financial_services|
|purpose|it_services|
|purpose|investment|
|purpose|insurance|
|purpose|loan_payment|
|purpose|pension|
|purpose|royalties|
|purpose|other|
|purpose|income|
|payment_type|UnreferencedRefund|
|processing_speed|fast|

<h2 id="tocS_VoidAcceptedResponse">VoidAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemavoidacceptedresponse"></a>
<a id="schema_VoidAcceptedResponse"></a>
<a id="tocSvoidacceptedresponse"></a>
<a id="tocsvoidacceptedresponse"></a>

```json
{
  "action_id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
  "reference": "ORD-5023-4E89",
  "_links": {
    "payment": {
      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
    }
  }
}

```

Void response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|action_id|[ActionId](#schemaactionid)|true|none|The unique identifier for the void action|
|reference|string|false|none|Your reference for the void request|
|_links|object|false|read-only|The links related to the void|
|» payment|[Link](#schemalink)|true|none|none|

<h2 id="tocS_VoidRequest">VoidRequest</h2>
<!-- backwards compatibility -->
<a id="schemavoidrequest"></a>
<a id="schema_VoidRequest"></a>
<a id="tocSvoidrequest"></a>
<a id="tocsvoidrequest"></a>

```json
{
  "amount": 6540,
  "reference": "ORD-5023-4E89",
  "metadata": {
    "coupon_code": "NY2018",
    "partner_id": 123989
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|integer(int64)|false|none|The amount to void. If not specified, the full payment amount will be voided.|
|reference|string|false|none|A reference you can later use to identify this void request.<br>For Amex, the string limit is 30 characters.|
|metadata|object|false|none|A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. <br><br>The `metadata` object only supports primitive data types. Objects and arrays are not supported.|

<h2 id="tocS_BankPayout">BankPayout</h2>
<!-- backwards compatibility -->
<a id="schemabankpayout"></a>
<a id="schema_BankPayout"></a>
<a id="tocSbankpayout"></a>
<a id="tocsbankpayout"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "requested_on": "2023-08-24T14:15:22Z",
  "destination": {
    "type": "bank_account",
    "id": "src_4pakgjwmv5re5m5ivqohsqpxnm",
    "bank_code": "123-456",
    "branch_code": "6443",
    "iban": "HU93116000060000000012345676",
    "country": "GB",
    "account_holder": {
      "first_name": "Jia",
      "last_name": "Tsang"
    }
  },
  "amount": 10000,
  "currency": "GBP",
  "reference": "ORD-5023-4E89",
  "billing_descriptor": {
    "reference": "BANK-REF"
  },
  "status": "Pending",
  "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
  "sender": {
    "first_name": "Ali",
    "last_name": "Farid"
  },
  "actions": [
    {
      "type": "Return",
      "processed_on": "2023-08-24T14:15:25.3448464+00:00",
      "status": "Returned"
    },
    {
      "id": "act_m4wvaqkqdzferpgpw32ykoxvuq",
      "type": "Payout",
      "processed_on": "2023-08-24T14:15:23.3448464+00:00",
      "status": "Approved",
      "response_code": "10000",
      "response_summary": "Approved"
    },
    {
      "id": "act_4crmhihaknzuvhjclvxu7bni24",
      "type": "Payout",
      "processed_on": "2023-08-24T14:15:22.3448464+00:00",
      "status": "Pending",
      "reference": "fd45gyh7-6y74-3gt6-bb3d-fd167854bc3c"
    }
  ]
}

```

Bank payout

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the payout.|
|requested_on|string|false|none|The UTC date and time the payment was requested, in ISO 8601 format.|
|destination|object|false|none|The destination of the payout.|
|» type|string|false|none|The payout destination type.|
|» id|string|false|none|The unique identifier of the payment instrument.|
|» bank_code|string|false|none|The code that identifies the bank.|
|» branch_code|string|false|none|The code that identifies the bank branch.|
|» iban|string|false|none|The International Bank Account Number (IBAN) of the account.|
|» country|string|false|none|The country where the account is based, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» account_holder|object|false|none|The account holder's details.|
|»» first_name|string|false|none|The account holder's first name.|
|»» last_name|string|false|none|The account holder's last name.|
|amount|number|false|none|The original payout amount.|
|currency|string|false|none|The currency of the payout, as a [three-letter ISO currency code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).|
|reference|string|false|none|The reference for the payout.|
|billing_descriptor|object|false|none|The billing descriptor details.|
|» reference|string|false|none|The reference displayed on the payout recipient's bank statement.|
|status|string|false|none|The status of the payout.|
|processing_channel_id|string|false|none|The unique identifier of the processing channel that was used for the payout.|
|sender|object|false|none|The payout sender's details.|
|» first_name|string|false|none|The sender's first name.|
|» last_name|string|false|none|The sender's last name.|
|actions|[object]|false|none|none|
|» id|string|false|none|The unique identifier of the payment action.|
|» type|string|false|none|The type of action.|
|» processed_on|string(date-time)|false|none|The date and time the action was processed.|
|» response_code|string|false|none|The response code.|
|» response_summary|string|false|none|The response summary.|
|» reference|string|false|none|The reference for the payout.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Payout|
|type|Return|

<h2 id="tocS_BankPayoutResponse">BankPayoutResponse</h2>
<!-- backwards compatibility -->
<a id="schemabankpayoutresponse"></a>
<a id="schema_BankPayoutResponse"></a>
<a id="tocSbankpayoutresponse"></a>
<a id="tocsbankpayoutresponse"></a>

```json
{
  "data": [
    {
      "id": "pay_mbabizu24mvu3mela5njyhpit4",
      "requested_on": "2023-08-24T14:15:22Z",
      "destination": {
        "type": "bank_account",
        "id": "src_4pakgjwmv5re5m5ivqohsqpxnm",
        "bank_code": "123-456",
        "branch_code": "6443",
        "iban": "HU93116000060000000012345676",
        "country": "GB",
        "account_holder": {
          "first_name": "Jia",
          "last_name": "Tsang"
        }
      },
      "amount": 10000,
      "currency": "GBP",
      "reference": "ORD-5023-4E89",
      "billing_descriptor": {
        "reference": "BANK-REF"
      },
      "status": "Pending",
      "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
      "sender": {
        "first_name": "Ali",
        "last_name": "Farid"
      },
      "actions": [
        {
          "type": "Return",
          "processed_on": "2023-08-24T14:15:25.3448464+00:00",
          "status": "Returned"
        },
        {
          "id": "act_m4wvaqkqdzferpgpw32ykoxvuq",
          "type": "Payout",
          "processed_on": "2023-08-24T14:15:23.3448464+00:00",
          "status": "Approved",
          "response_code": "10000",
          "response_summary": "Approved"
        },
        {
          "id": "act_4crmhihaknzuvhjclvxu7bni24",
          "type": "Payout",
          "processed_on": "2023-08-24T14:15:22.3448464+00:00",
          "status": "Pending",
          "reference": "fd45gyh7-6y74-3gt6-bb3d-fd167854bc3c"
        }
      ]
    }
  ],
  "_links": {
    "next": {
      "href": "https://{prefix}.api.checkout.com/payments/search/nGd7-altGkOfSl3fJptLxA?token=MTc0MDUwMjE2MjQxOCxlN2NiNTdmYy04MDA5LTQ3YmMtOTYzNi0zNDEyOWRmZTkwZTI"
    }
  }
}

```

Bank payout response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[anyOf]|false|none|none|
|_links|[Links](#schemalinks)|false|none|Links related to the search.|

<h2 id="tocS_CardPayout">CardPayout</h2>
<!-- backwards compatibility -->
<a id="schemacardpayout"></a>
<a id="schema_CardPayout"></a>
<a id="tocScardpayout"></a>
<a id="tocscardpayout"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "requested_on": "2023-08-24T14:15:22Z",
  "destination": {
    "type": "card",
    "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44",
    "expiry_year": "2024",
    "expiry_month": "04",
    "account_holder": {
      "first_name": "Jia",
      "last_name": "Tsang"
    },
    "scheme": "Visa",
    "last4": "1212",
    "issuer": "issuer",
    "issuer_country": "issuer"
  },
  "amount": 10000,
  "currency": "GBP",
  "reference": "ORD-5023-4E89",
  "billing_descriptor": {
    "reference": "CARD-REF"
  },
  "status": "Paid",
  "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
  "sender": {
    "type": "individual",
    "first_name": "Ali",
    "last_name": "Farid"
  },
  "metadata": {},
  "actions": [
    {
      "id": "act_obwnktnk6i2e5bcp5i7xq673se",
      "type": "Payout",
      "processed_on": "2023-08-24T14:15:23.3448464+00:00",
      "status": "Approved",
      "response_code": "10000",
      "response_summary": "Approved",
      "sanction_screening": "Pass",
      "processing": {
        "acquirer_reference_number": "232810098064"
      }
    },
    {
      "id": "act_rdqbtrhinozuza3wbnhi3n7noa",
      "type": "Payout",
      "processed_on": "2023-08-24T14:15:22.3448464+00:00",
      "status": "Pending",
      "reference": "fd45gyh7-6y74-3gt6-bb3d-fd167854bc3c"
    }
  ]
}

```

Card payout

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the payout.|
|requested_on|string|false|none|The UTC date and time the payment was requested, in ISO 8601 format.|
|destination|object|false|none|The destination of the payout.|
|» type|string|false|none|The payout destination type.|
|» id|string|false|none|The unique identifier of the payment source.|
|» expiry_year|string|false|none|The card expiration year.|
|» expiry_month|string|false|none|The card expiration month.|
|» account_holder|object|false|none|The account holder's details.|
|»» first_name|string|false|none|The account holder's first name.<br><br>This field is only returned if `destination.account_holder.type` is `individual`.|
|»» last_name|string|false|none|The account holder's last name.<br><br>This field is only returned if `destination.account_holder.type` is `individual`.|
|» scheme|string|false|none|The card scheme.|
|» last4|string|false|none|The last four digits of the card number.|
|» issuer|string|false|none|The issuer name.|
|» issuer_country|string|false|none|The issuer country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|amount|number|false|none|The original payout amount.|
|currency|string|false|none|The currency of the payout, as a [three-letter ISO currency code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).|
|reference|string|false|none|The reference for the payout.|
|billing_descriptor|object|false|none|The billing descriptor details.|
|» reference|string|false|none|The reference displayed on the payout recipient's bank statement.|
|status|string|false|none|The status of the payout.|
|processing_channel_id|string|false|none|The unique identifier of the processing channel that was used for the payout.|
|sender|object|false|none|The payout sender's details.|
|» type|string|false|none|The sender type. <br><br>This field is only returned for payout requests for some [funds transfer types](https://www.checkout.com/docs/payments/request-payouts/card-payouts#Fund_Transfer_Types).|
|» first_name|string|false|none|The sender's first name.<br><br>This field is only returned if `sender.type` is `individual`.|
|» last_name|string|false|none|The sender's last name.<br><br>This field is only returned if `sender.type` is `individual`.|
|metadata|object|false|none|A set of key-value pairs attached to the payout, used to store additional information.|
|actions|[object]|false|none|none|
|» id|string|false|none|The unique identifier of the payment action.|
|» type|string|false|none|The type of action.|
|» processed_on|string(date-time)|false|none|The date and time the action was processed.|
|» processing|object|false|none|none|
|»» acquirer_reference_number|string|false|none|A unique identifier for the payout that is submitted to the card scheme during processing.|
|» response_code|string|false|none|The response code.|
|» response_summary|string|false|none|The response summary.|
|» reference|string|false|none|The reference for the payout.|
|» sanction_screening|string|false|none|The outcome of sanction screening.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Payout|

<h2 id="tocS_CardPayoutResponse">CardPayoutResponse</h2>
<!-- backwards compatibility -->
<a id="schemacardpayoutresponse"></a>
<a id="schema_CardPayoutResponse"></a>
<a id="tocScardpayoutresponse"></a>
<a id="tocscardpayoutresponse"></a>

```json
{
  "data": [
    {
      "id": "pay_mbabizu24mvu3mela5njyhpit4",
      "requested_on": "2023-08-24T14:15:22Z",
      "destination": {
        "type": "card",
        "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44",
        "expiry_year": "2024",
        "expiry_month": "04",
        "account_holder": {
          "first_name": "Jia",
          "last_name": "Tsang"
        },
        "scheme": "Visa",
        "last4": "1212",
        "issuer": "issuer",
        "issuer_country": "issuer"
      },
      "amount": 10000,
      "currency": "GBP",
      "reference": "ORD-5023-4E89",
      "billing_descriptor": {
        "reference": "CARD-REF"
      },
      "status": "Paid",
      "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
      "sender": {
        "type": "individual",
        "first_name": "Ali",
        "last_name": "Farid"
      },
      "metadata": {},
      "actions": [
        {
          "id": "act_obwnktnk6i2e5bcp5i7xq673se",
          "type": "Payout",
          "processed_on": "2023-08-24T14:15:23.3448464+00:00",
          "status": "Approved",
          "response_code": "10000",
          "response_summary": "Approved",
          "sanction_screening": "Pass",
          "processing": {
            "acquirer_reference_number": "232810098064"
          }
        },
        {
          "id": "act_rdqbtrhinozuza3wbnhi3n7noa",
          "type": "Payout",
          "processed_on": "2023-08-24T14:15:22.3448464+00:00",
          "status": "Pending",
          "reference": "fd45gyh7-6y74-3gt6-bb3d-fd167854bc3c"
        }
      ]
    }
  ],
  "_links": {
    "next": {
      "href": "https://{prefix}.api.checkout.com/payments/search/nGd7-altGkOfSl3fJptLxA?token=MTc0MDUwMjE2MjQxOCxlN2NiNTdmYy04MDA5LTQ3YmMtOTYzNi0zNDEyOWRmZTkwZTI"
    }
  }
}

```

Card payout response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[anyOf]|false|none|none|
|_links|[Links](#schemalinks)|false|none|Links related to the search.|

<h2 id="tocS_Links">Links</h2>
<!-- backwards compatibility -->
<a id="schemalinks"></a>
<a id="schema_Links"></a>
<a id="tocSlinks"></a>
<a id="tocslinks"></a>

```json
{
  "next": {
    "href": "https://{prefix}.api.checkout.com/payments/search/nGd7-altGkOfSl3fJptLxA?token=MTc0MDUwMjE2MjQxOCxlN2NiNTdmYy04MDA5LTQ3YmMtOTYzNi0zNDEyOWRmZTkwZTI"
  }
}

```

Links

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|next|[Link](#schemalink)|false|none|A link to the next page of results, if the search returned more results than the value specified in `limit`.<br><br>Pagination links expire after 24 hours. If you attempt to access the link after this time, you receive a `404 Not Found` response code.|

<h2 id="tocS_Payin">Payin</h2>
<!-- backwards compatibility -->
<a id="schemapayin"></a>
<a id="schema_Payin"></a>
<a id="tocSpayin"></a>
<a id="tocspayin"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "requested_on": "2023-08-24T14:15:22Z",
  "source": {
    "type": "card",
    "expiry_month": "04",
    "expiry_year": "2024",
    "name": "Jia Tsang",
    "scheme": "Visa",
    "local_schemes": [
      "cartes bancaires"
    ],
    "last4": "3131",
    "fingerprint": "B16D9C2EF0C861A8825C9BD59CCE9171D84EBC45E89CC792B5D1D2D0DDE3DAB7",
    "bin": "313131",
    "card_type": "credit",
    "card_wallet_type": "googlepay",
    "issuer": "GE CAPITAL FINANCIAL, INC",
    "issuer_country": "US",
    "avs_check": "G"
  },
  "amount": 10000,
  "amount_requested": 10000,
  "currency": "GBP",
  "payment_type": "regular",
  "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
  "reference": "ORD-5023-4E89",
  "status": "captured",
  "balances": {
    "total_authorized": 200,
    "total_captured": 150,
    "total_refunded": 50
  },
  "3ds": {
    "eci": "02",
    "version": "2.1.0"
  },
  "risk": {
    "flagged": false,
    "score": "22"
  },
  "customer": {
    "email": "jia.tsang@checkout.com",
    "name": "Jia Tsang"
  },
  "billing_descriptor": {
    "name": "Purchase",
    "city": "London"
  },
  "metadata": {},
  "actions": [
    {
      "id": "act_egiv5753bwmexj6ip3tlpog6gq",
      "type": "Dispute",
      "processed_on": "2023-08-25T14:15:24Z",
      "status": "Evidence Required",
      "amount": 1310,
      "reason_code": "13.1"
    },
    {
      "id": "act_i3cd3w3lcooexmyrtlgulk3d7a",
      "type": "Capture",
      "processed_on": "2023-08-24T14:15:26Z",
      "status": "Approved",
      "amount": 1310,
      "auth_code": "983647",
      "response_code": "10000",
      "response_summary": "Approved",
      "reference": "REF-7HR-IYW",
      "processing": {
        "acquirer_reference_number": "25651432189281252509653"
      }
    },
    {
      "id": "act_2uwlm6xyeszerhroqhfnotmiwu",
      "type": "Authorization",
      "processed_on": "2023-08-24T14:15:25Z",
      "status": "Approved",
      "amount": 1310,
      "auth_code": "983647",
      "response_code": "10000",
      "response_summary": "Approved",
      "reference": "REF-7HR-IYW",
      "processing": {
        "acquirer_reference_number": "25651432189281252509653"
      }
    },
    {
      "id": "act_mscwxewzdldefh2rbbnhm6aeqi",
      "type": "Authorization",
      "processed_on": "2023-08-24T14:15:24Z",
      "status": "Pending",
      "amount": 1310,
      "reference": "REF-7HR-IYW"
    },
    {
      "id": "act_qocmjw6skb4u3c4wd3avpot64y",
      "type": "Authentication",
      "processed_on": "2023-08-24T14:15:34Z",
      "status": "Approved",
      "authentication_experience": "3ds",
      "authentication_transaction_id": "f05af960-f718-428d-b856-068f6cb9a3b4"
    },
    {
      "id": "act_qocmjw6skb4u3c4wd3avpot64y",
      "type": "Authentication",
      "processed_on": "2023-08-24T14:15:22Z",
      "status": "Pending",
      "reference": "REF-7HR-IYW"
    }
  ]
}

```

Payin

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the payment.|
|requested_on|string|false|none|The UTC date and time the payment was requested, in ISO 8601 format.|
|source|object|false|none|The source of the payment.|
|» type|string|false|none|The payment source type. <br><br>For payment request sources that result in a card token, this will be `card`. For example, a token or source ID.|
|» expiry_month|string|false|none|The card expiration month.|
|» expiry_year|string|false|none|The card expiration year.|
|» name|string|false|none|The cardholder's name.|
|» scheme|string|false|none|The card scheme.|
|» local_schemes|[string]|false|none|The local co-branded card scheme.|
|» last4|string|false|none|The last four digits of the card number.|
|» fingerprint|string|false|none|The card's unique fingerprint.<br><br>You can use the card fingerprint to compare cards across customers.|
|» bin|string|false|none|The card issuer's Bank Identification Number (BIN).|
|» card_type|string|false|none|The card type.|
|» card_wallet_type|string|false|none|The card wallet type.|
|» issuer|string|false|none|The card issuer.|
|» issuer_country|string|false|none|The issuer country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» avs_check|string|false|none|The result of the Address Verification System (AVS) check.|
|amount|number|false|none|The original payment amount.|
|amount_requested|number|false|none|The full amount from the original authorization, if a partial authorization was requested.|
|currency|string|false|none|The currency of the payment, as a [three-letter ISO currency code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).|
|payment_type|string|false|none|The type of payment.<br><br>This field is returned for card payments where the cardholder was not present. For example, recurring payments or mail order / telephone order (MOTO) payments.|
|processing_channel_id|string|false|none|The unique identifier of the processing channel that was used for the payment.|
|reference|string|false|none|The reference for the payment.|
|status|string|false|none|The status of the payment.|
|balances|object|false|none|The payment's balances.|
|» total_authorized|number|false|none|The total amount that was authorized.|
|» total_captured|number|false|none|The total amount that was captured.|
|» total_refunded|number|false|none|The total amount that was refunded.|
|3ds|object|false|none|Details relating to payments processed with 3D Secure (3DS).|
|» eci|string|false|none|The Electronic Commerce Indicator (ECI).|
|» version|string|false|none|The version of 3DS that was used for authentication.|
|risk|object|false|none|The payment's risk assessment results.|
|» flagged|boolean|false|none|Specifies whether the payment was flagged by a risk check.|
|» score|string|false|none|The risk score calculated by our Fraud Detection engine.<br><br>This field is only returned if sufficient data was provided to Fraud Detection.|
|customer|object|false|none|The customer linked to the payment.|
|» email|string|false|none|The customer's email address.|
|» name|string|false|none|The customer's name.|
|billing_descriptor|object|false|none|An optional description displayed on the customer's statement identifying a purchase.<br><br>Applies to card payments only.|
|» name|string|false|none|The reference displayed on the customer's bank statement.|
|» city|string|false|none|The city from which the payment originated.|
|metadata|object|false|none|A set of key-value pairs attached to the payout, used to store additional information.|
|actions|[object]|false|none|none|
|» id|string|false|none|The unique identifier of the payment action, including authentication and disputes.|
|» type|string|false|none|The type of action.|
|» status|string|false|none|The action outcome.|
|» processed_on|string(date-time)|false|none|The date and time the action was processed.|
|» amount|integer|false|none|The action amount in minor currency units.|
|» auth_code|string|false|none|The issuer authorization code for cards.|
|» response_code|string|false|none|The response code.|
|» response_summary|string|false|none|The response summary.|
|» reference|string|false|none|Your reference for the action.|
|» processing|object|false|none|none|
|»» acquirer_reference_number|string|false|none|A unique identifier for the capture that is submitted to the card scheme during processing.|
|» fraud_score|string|false|none|The risk score calculated by our Fraud Detection engine. This field is only returned if sufficient data was provided to Fraud Detection.|
|» response_status_reason|string|false|none|The reason for the response status. This is only available as a result of a 3DS2 authentication.|
|» authentication_experience|string|false|none|The authentication type used.|
|» reason_code|string|false|none|The reason code provided by the card scheme. This only applies to disputes.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Authentication|
|type|Authorization|
|type|Card Verification|
|type|Void|
|type|Capture|
|type|Partial Capture|
|type|Partial Refund|
|type|Refund|
|type|Cancelation|
|type|Request|
|type|Pending|
|type|Dispute|

<h2 id="tocS_PayinResponse">PayinResponse</h2>
<!-- backwards compatibility -->
<a id="schemapayinresponse"></a>
<a id="schema_PayinResponse"></a>
<a id="tocSpayinresponse"></a>
<a id="tocspayinresponse"></a>

```json
{
  "data": [
    {
      "id": "pay_mbabizu24mvu3mela5njyhpit4",
      "requested_on": "2023-08-24T14:15:22Z",
      "source": {
        "type": "card",
        "expiry_month": "04",
        "expiry_year": "2024",
        "name": "Jia Tsang",
        "scheme": "Visa",
        "local_schemes": [
          "cartes bancaires"
        ],
        "last4": "3131",
        "fingerprint": "B16D9C2EF0C861A8825C9BD59CCE9171D84EBC45E89CC792B5D1D2D0DDE3DAB7",
        "bin": "313131",
        "card_type": "credit",
        "card_wallet_type": "googlepay",
        "issuer": "GE CAPITAL FINANCIAL, INC",
        "issuer_country": "US",
        "avs_check": "G"
      },
      "amount": 10000,
      "amount_requested": 10000,
      "currency": "GBP",
      "payment_type": "regular",
      "processing_channel_id": "pc_vxt6yftthv4e5flqak6w2i7rim",
      "reference": "ORD-5023-4E89",
      "status": "captured",
      "balances": {
        "total_authorized": 200,
        "total_captured": 150,
        "total_refunded": 50
      },
      "3ds": {
        "eci": "02",
        "version": "2.1.0"
      },
      "risk": {
        "flagged": false,
        "score": "22"
      },
      "customer": {
        "email": "jia.tsang@checkout.com",
        "name": "Jia Tsang"
      },
      "billing_descriptor": {
        "name": "Purchase",
        "city": "London"
      },
      "metadata": {},
      "actions": [
        {
          "id": "act_egiv5753bwmexj6ip3tlpog6gq",
          "type": "Dispute",
          "processed_on": "2023-08-25T14:15:24Z",
          "status": "Evidence Required",
          "amount": 1310,
          "reason_code": "13.1"
        },
        {
          "id": "act_i3cd3w3lcooexmyrtlgulk3d7a",
          "type": "Capture",
          "processed_on": "2023-08-24T14:15:26Z",
          "status": "Approved",
          "amount": 1310,
          "auth_code": "983647",
          "response_code": "10000",
          "response_summary": "Approved",
          "reference": "REF-7HR-IYW",
          "processing": {
            "acquirer_reference_number": "25651432189281252509653"
          }
        },
        {
          "id": "act_2uwlm6xyeszerhroqhfnotmiwu",
          "type": "Authorization",
          "processed_on": "2023-08-24T14:15:25Z",
          "status": "Approved",
          "amount": 1310,
          "auth_code": "983647",
          "response_code": "10000",
          "response_summary": "Approved",
          "reference": "REF-7HR-IYW",
          "processing": {
            "acquirer_reference_number": "25651432189281252509653"
          }
        },
        {
          "id": "act_mscwxewzdldefh2rbbnhm6aeqi",
          "type": "Authorization",
          "processed_on": "2023-08-24T14:15:24Z",
          "status": "Pending",
          "amount": 1310,
          "reference": "REF-7HR-IYW"
        },
        {
          "id": "act_qocmjw6skb4u3c4wd3avpot64y",
          "type": "Authentication",
          "processed_on": "2023-08-24T14:15:34Z",
          "status": "Approved",
          "authentication_experience": "3ds",
          "authentication_transaction_id": "f05af960-f718-428d-b856-068f6cb9a3b4"
        },
        {
          "id": "act_qocmjw6skb4u3c4wd3avpot64y",
          "type": "Authentication",
          "processed_on": "2023-08-24T14:15:22Z",
          "status": "Pending",
          "reference": "REF-7HR-IYW"
        }
      ]
    }
  ],
  "_links": {
    "next": {
      "href": "https://{prefix}.api.checkout.com/payments/search/nGd7-altGkOfSl3fJptLxA?token=MTc0MDUwMjE2MjQxOCxlN2NiNTdmYy04MDA5LTQ3YmMtOTYzNi0zNDEyOWRmZTkwZTI"
    }
  }
}

```

Payin response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[anyOf]|false|none|none|
|_links|[Links](#schemalinks)|false|none|Links related to the search.|

<h2 id="tocS_SearchError">SearchError</h2>
<!-- backwards compatibility -->
<a id="schemasearcherror"></a>
<a id="schema_SearchError"></a>
<a id="tocSsearcherror"></a>
<a id="tocssearcherror"></a>

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "unknown_attribute"
  ]
}

```

Search error

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|
|error_codes|[string]|false|none|none|

<h2 id="tocS_SearchRequest">SearchRequest</h2>
<!-- backwards compatibility -->
<a id="schemasearchrequest"></a>
<a id="schema_SearchRequest"></a>
<a id="tocSsearchrequest"></a>
<a id="tocssearchrequest"></a>

```json
{
  "query": "id:'pay_mbabizu24mvu3mela5njyhpit4'",
  "limit": 10,
  "from": "2023-08-24T14:15:22Z",
  "to": "2023-08-24T14:15:22Z"
}

```

Search request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|query|string|false|none|The query string.<br><br>For more information on how to build out your query, see the <a href="https://www.checkout.com/docs/payments/manage-payments/search-and-filter-payments#Search_through_your_payments" target="blank">Search and filter payments</a> documentation.|
|limit|integer|false|none|The number of results to return per page.|
|from|string|false|none|The UTC date and time for the query start in ISO 8601 format. Required if `to` is provided.|
|to|string|false|none|The UTC date and time for the query end in ISO 8601 format. Required if `from` is provided.|

<h2 id="tocS_CreateAndSubmitPaymentSessionsActionRequiredResponse">CreateAndSubmitPaymentSessionsActionRequiredResponse</h2>
<!-- backwards compatibility -->
<a id="schemacreateandsubmitpaymentsessionsactionrequiredresponse"></a>
<a id="schema_CreateAndSubmitPaymentSessionsActionRequiredResponse"></a>
<a id="tocScreateandsubmitpaymentsessionsactionrequiredresponse"></a>
<a id="tocscreateandsubmitpaymentsessionsactionrequiredresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Action Required",
  "type": "alipay_cn",
  "action": {},
  "payment_session_id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
}

```

Response for an action required payment session payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment's status.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|
|action|object|true|none|Instruction for further payment action.|
|payment_session_id|[PaymentSessionId](#schemapaymentsessionid)|true|none|The Payment Sessions unique identifier|
|payment_session_secret|[PaymentSessionSecret](#schemapaymentsessionsecret)|true|none|The secret used by Flow to authenticate payment session requests.<br><br>Do not log or store this value.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Action Required|

<h2 id="tocS_CreateAndSubmitPaymentSessionsProcessedResponse">CreateAndSubmitPaymentSessionsProcessedResponse</h2>
<!-- backwards compatibility -->
<a id="schemacreateandsubmitpaymentsessionsprocessedresponse"></a>
<a id="schema_CreateAndSubmitPaymentSessionsProcessedResponse"></a>
<a id="tocScreateandsubmitpaymentsessionsprocessedresponse"></a>
<a id="tocscreateandsubmitpaymentsessionsprocessedresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Approved",
  "type": "alipay_cn",
  "payment_session_id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment's status.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved](#schemacreateandsubmitpaymentsessionsprocessedresponsestatusapproved)|false|none|Response for an approved payment session payment.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined](#schemacreateandsubmitpaymentsessionsprocessedresponsestatusdeclined)|false|none|Response for a declined payment session payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Approved|
|status|Declined|

<h2 id="tocS_CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved">CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved</h2>
<!-- backwards compatibility -->
<a id="schemacreateandsubmitpaymentsessionsprocessedresponsestatusapproved"></a>
<a id="schema_CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved"></a>
<a id="tocScreateandsubmitpaymentsessionsprocessedresponsestatusapproved"></a>
<a id="tocscreateandsubmitpaymentsessionsprocessedresponsestatusapproved"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Approved",
  "type": "alipay_cn",
  "payment_session_id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
}

```

Approved

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment was approved.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|
|payment_session_id|[PaymentSessionId](#schemapaymentsessionid)|true|none|The Payment Sessions unique identifier|
|payment_session_secret|[PaymentSessionSecret](#schemapaymentsessionsecret)|true|none|The secret used by Flow to authenticate payment session requests.<br><br>Do not log or store this value.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Approved|

<h2 id="tocS_CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined">CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined</h2>
<!-- backwards compatibility -->
<a id="schemacreateandsubmitpaymentsessionsprocessedresponsestatusdeclined"></a>
<a id="schema_CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined"></a>
<a id="tocScreateandsubmitpaymentsessionsprocessedresponsestatusdeclined"></a>
<a id="tocscreateandsubmitpaymentsessionsprocessedresponsestatusdeclined"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Declined",
  "type": "alipay_cn",
  "decline_reason": "string"
}

```

Declined

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment was declined.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|
|decline_reason|string|true|none|The reason for the payment decline.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Declined|

<h2 id="tocS_CreateAndSubmitPaymentSessionsRequest">CreateAndSubmitPaymentSessionsRequest</h2>
<!-- backwards compatibility -->
<a id="schemacreateandsubmitpaymentsessionsrequest"></a>
<a id="schema_CreateAndSubmitPaymentSessionsRequest"></a>
<a id="tocScreateandsubmitpaymentsessionsrequest"></a>
<a id="tocscreateandsubmitpaymentsessionsrequest"></a>

```json
{
  "session_data": "string",
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  }
}

```

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» session_data|[PaymentSessionsSessionData](#schemapaymentsessionssessiondata)|true|none|A unique token representing the additional customer data captured by Flow, as received from the <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/flow-library-reference/flowcomponent#handleSubmit(FlowComponent,_SubmitData)">handleSubmit</a> callback.<br><br>Do not log or store this value.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CreatePaymentSessionsBaseRequest](#schemacreatepaymentsessionsbaserequest)|false|none|none|

<h2 id="tocS_CreatePaymentSessionsBaseRequest">CreatePaymentSessionsBaseRequest</h2>
<!-- backwards compatibility -->
<a id="schemacreatepaymentsessionsbaserequest"></a>
<a id="schema_CreatePaymentSessionsBaseRequest"></a>
<a id="tocScreatepaymentsessionsbaserequest"></a>
<a id="tocscreatepaymentsessionsbaserequest"></a>

```json
{
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount|[PaymentSessionsAmount](#schemapaymentsessionsamount)|true|none|The payment amount. Provide a value of `0` to perform a card verification.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="blank">minor currency unit</a>.|
|currency|[PaymentSessionCurrency](#schemapaymentsessioncurrency)|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>.|
|payment_type|[PaymentSessionPaymentType](#schemapaymentsessionpaymenttype)|false|none|Must be specified for card-not-present (CNP) payments. For example, a recurring mail order / telephone order (MOTO) payment.|
|authorization_type|string|false|none|The authorization type.|
|billing|[PaymentSessionBilling](#schemapaymentsessionbilling)|true|none|The billing details.|
|billing_descriptor|[PaymentSessionsBillingDescriptor](#schemapaymentsessionsbillingdescriptor)|false|none|A description of the purchase, which is displayed on the customer's statement.|
|reference|[PaymentInterfacesReference](#schemapaymentinterfacesreference)|false|none|A reference you can use to identify the payment. For example, an order number. <br>  - For Amex payments, this must be at most 30 characters.<br>  - For Benefit payments, the reference must be a unique alphanumeric value.<br>  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.|
|description|string|false|none|A description for the payment.|
|customer|[PaymentSessionCustomer](#schemapaymentsessioncustomer)|false|none|The customer's details. Required if `source.type` is `tamara`.|
|shipping|[PaymentSessionShipping](#schemapaymentsessionshipping)|false|none|The shipping details|
|recipient|[PaymentInterfacesRecipient](#schemapaymentinterfacesrecipient)|false|none|Information about the recipient of the payment's funds. Applies to <a href="https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction">Account Funding Transactions</a>, and VISA or Mastercard <a href="https://www.checkout.com/docs/business-operations/ensure-regulatory-compliance/requirements-for-financial-institutions">domestic UK transactions processed by financial institutions</a>.|
|processing|[PaymentInterfacesProcessing](#schemapaymentinterfacesprocessing)|false|none|Use the processing object to influence or override the data sent during card processing|
|instruction|object|false|none|Details about the payment instruction.|
|» purpose|[Purpose](#schemapurpose)|false|none|The purpose of the payment.<br>This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).<br>See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.|
|processing_channel_id|[PaymentSessionProcessingChannelId](#schemapaymentsessionprocessingchannelid)|false|none|The processing channel to use for the payment.|
|items|[PaymentSessionsItems](#schemapaymentsessionsitems)|false|none|The line items in the order.|
|amount_allocations|[object]|false|none|The sub-entities that the payment is being processed on behalf of.|
|» id|string|true|none|The sub-entity's ID.|
|» amount|integer|true|none|The split amount, in <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>. The sum of all split amounts must be equal to the payment amount. The split amount will be credited to your sub-entity's currency account.|
|» reference|string|false|none|A reference you can use to identify the split. For example, an order number.|
|» commission|object|false|none|The commission you'd like to collect from the split, calculated using the formula: `commission = (amount * commission.percentage) + commission.amount`. The commission cannot exceed the split amount. Commission will be credited to your currency account.|
|»» amount|integer|false|none|An optional commission to collect, as a fixed amount in <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>.|
|»» percentage|number|false|none|An optional commission to collect, as a percentage value with up to eight decimal places.|
|risk|object|false|none|Configures the risk assessment performed during payment processing.|
|» enabled|boolean|true|none|Specifies whether to perform a risk assessment.|
|display_name|string|false|none|The merchant's display name.|
|success_url|[PaymentSessionsSuccessUrl](#schemapaymentsessionssuccessurl)|true|none|Overrides the default success redirect URL configured on your account, for payment methods that require a redirect.|
|failure_url|[PaymentSessionsFailureUrl](#schemapaymentsessionsfailureurl)|true|none|Overrides the default failure redirect URL configured on your account, for payment methods that require a redirect.|
|metadata|[PaymentSessionMetadata](#schemapaymentsessionmetadata)|false|none|Allows you to store additional information about a transaction with custom fields and up to five user-defined fields, which can be used for reporting purposes. You can supply fields of type `string`, `number`, and `boolean` within the `metadata` object. Arrays and objects are not supported.<br><br>You can provide up to 18 metadata fields per API call, but the value of each field must not exceed 255 characters in length.<br><br>You can also reference [`metadata` properties](https://www.checkout.com/docs/business-operations/prevent-fraud/understand-fraud-detection#Metadata) in your custom rules for Fraud Detection. For example, `$coupon_code = '1234'`.|
|locale|string|false|none|Creates a translated version of the page in the specified language.|
|3ds|[PaymentSessions3DS](#schemapaymentsessions3ds)|false|none|none|
|sender|[PaymentInterfacesSender](#schemapaymentinterfacessender)|false|none|The sender of the payment.|
|capture|[PaymentSessionCaptureFlag](#schemapaymentsessioncaptureflag)|false|none|Specifies whether to capture the payment, if applicable.|
|capture_on|[PaymentSessionCaptureOn](#schemapaymentsessioncaptureon)|false|none|A timestamp specifying when to capture the payment, as an ISO 8601 code. If a value is provided, `capture` is automatically set to `true`.|
|payment_plan|[PaymentSessionPaymentPlanRecurring](#schemapaymentsessionpaymentplanrecurring)|false|none|The information to process a recurring payment request. To be used when the payment_type is Recurring.|

#### Enumerated Values

|Property|Value|
|---|---|
|authorization_type|Final|
|authorization_type|Estimated|
|locale|ar|
|locale|da-DK|
|locale|de-DE|
|locale|el|
|locale|en-GB|
|locale|es-ES|
|locale|fi-FI|
|locale|fil-PH|
|locale|fr-FR|
|locale|hi-IN|
|locale|id-ID|
|locale|it-IT|
|locale|ja-JP|
|locale|ko-KR|
|locale|ms-MY|
|locale|nb-NO|
|locale|nl-NL|
|locale|pt-PT|
|locale|sv-SE|
|locale|th-TH|
|locale|vi-VN|
|locale|zh-CN|
|locale|zh-HK|
|locale|zh-TW|

<h2 id="tocS_CreatePaymentSessionsRequest">CreatePaymentSessionsRequest</h2>
<!-- backwards compatibility -->
<a id="schemacreatepaymentsessionsrequest"></a>
<a id="schema_CreatePaymentSessionsRequest"></a>
<a id="tocScreatepaymentsessionsrequest"></a>
<a id="tocscreatepaymentsessionsrequest"></a>

```json
{
  "amount": 1000,
  "currency": "USD",
  "payment_type": "Regular",
  "authorization_type": "Estimated",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "description": "Payment for gold necklace",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "processing": {
    "aft": true,
    "discount_amount": 0,
    "shipping_amount": 300,
    "tax_amount": 3000,
    "invoice_id": "string",
    "brand_name": "string",
    "locale": "en-US",
    "partner_customer_risk_data": {
      "key": "string",
      "value": "string"
    },
    "custom_payment_method_ids": [
      "string"
    ],
    "airline_data": [
      {
        "ticket": {
          "number": "045-21351455613",
          "issue_date": "2023-05-20",
          "issuing_carrier_code": "AI",
          "travel_package_indicator": "B",
          "travel_agency_name": "World Tours",
          "travel_agency_code": "01"
        },
        "passenger": [
          {
            "first_name": "John",
            "last_name": "White",
            "date_of_birth": "1990-05-26",
            "address": {
              "country": "US"
            }
          }
        ],
        "flight_leg_details": [
          {
            "flight_number": "101",
            "carrier_code": "BA",
            "class_of_travelling": "J",
            "departure_airport": "LHR",
            "departure_date": "2023-06-19",
            "departure_time": "15:30",
            "arrival_airport": "LAX",
            "stop_over_code": "x",
            "fare_basis_code": "SPRSVR"
          }
        ]
      }
    ],
    "accommodation_data": [
      {
        "name": "The Sea View Hotel",
        "booking_reference": "HOTEL123",
        "check_in_date": "2023-06-20",
        "check_out_date": "2023-06-23",
        "address": {
          "address_line1": "123 Beach Road",
          "zip": "10001"
        },
        "state": "FL",
        "country": "USA",
        "city": "Los Angeles",
        "number_of_rooms": 2,
        "guests": [
          {
            "first_name": "Jane",
            "last_name": "Doe",
            "date_of_birth": "1985-07-14"
          }
        ],
        "room": [
          {
            "rate": "70",
            "number_of_nights_at_room_rate": "3"
          }
        ]
      }
    ],
    "order_id": "123456789",
    "surcharge_amount": 200,
    "duty_amount": 0,
    "shipping_tax_amount": 100,
    "affiliate_id": "string",
    "affiliate_url": "www.mycrypto.com",
    "purchase_country": "string",
    "merchant_initiated_reason": "Delayed_charge",
    "campaign_id": 0,
    "original_order_amount": 10,
    "receipt_id": "10",
    "merchant_callback_url": "string",
    "line_of_business": "Flights",
    "pan_preference": "fpan",
    "provision_network_token": true,
    "reconciliation_id": "4123495123",
    "aggregator": {
      "sub_merchant_id": "9cf70789ba90123",
      "aggregator_id_visa": "10012345",
      "aggregator_id_mc": "00000123456"
    }
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "risk": {
    "enabled": false
  },
  "display_name": "string",
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "locale": "ar",
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "payment_plan": {
    "amount_variability": "Variable",
    "days_between_payments": 28,
    "total_number_of_payments": 5,
    "current_payment_number": 3,
    "expiry": "20251031",
    "name": "Subscription 1234",
    "start_date": "20260507",
    "amount": 1234
  },
  "expires_on": "2024-01-01T09:15:30Z",
  "enabled_payment_methods": [
    "card",
    "applepay",
    "googlepay"
  ],
  "disabled_payment_methods": [
    "eps",
    "ideal",
    "knet"
  ],
  "payment_method_configuration": {
    "applepay": {
      "store_payment_details": "disabled",
      "account_holder": {},
      "total_type": "pending"
    },
    "card": {
      "store_payment_details": "disabled",
      "account_holder": {}
    },
    "googlepay": {
      "store_payment_details": "disabled",
      "account_holder": {},
      "total_price_status": "estimated"
    },
    "stored_card": {
      "customer_id": "string",
      "instrument_ids": [
        "string"
      ],
      "default_instrument_id": "string"
    }
  },
  "customer_retry": {
    "max_attempts": 2
  },
  "ip_address": "90.197.169.245"
}

```

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CreatePaymentSessionsBaseRequest](#schemacreatepaymentsessionsbaserequest)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» expires_on|string(date-time)|false|none|A timestamp specifying when the `PaymentSession` should expire, as an ISO 8601 code. If no value is provided, expiry is set to 24 hours after the `PaymentSession` is created. You cannot set the session expiry to more than 60 days after the `PaymentSession` is created.|
|» enabled_payment_methods|[PaymentInterfacesPaymentMethods](#schemapaymentinterfacespaymentmethods)|false|none|Specifies which payment method options to present to the customer.<br><br>The values in this field override any equivalent values in `disabled_payment_methods`.|
|» disabled_payment_methods|[PaymentInterfacesPaymentMethods](#schemapaymentinterfacespaymentmethods)|false|none|Specifies which payment method options to not present to the customer.<br><br>If you specify the same payment method in this field and in `enabled_payment_methods`, the `disabled_payment_methods` value will be overridden.<br><br>Any payment method options not explicitly specified in this field will be presented to the customer by default.|
|» payment_method_configuration|any|false|none|none|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[PaymentSessionsPaymentMethodConfigurationBase](#schemapaymentsessionspaymentmethodconfigurationbase)|false|none|Configurations for payment method-specific settings.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|object|false|none|none|
|»»» applepay|object|false|none|none|
|»»»» account_holder|object|false|none|The account holder's details.|
|»»»» total_type|string|false|none|The [type](https://developer.apple.com/documentation/applepayontheweb/applepaylineitemtype) of the Apple Pay payment [total line item](https://developer.apple.com/documentation/applepayontheweb/applepaypaymentrequest/total).|
|»»» card|object|false|none|none|
|»»»» account_holder|object|false|none|The account holder's details.|
|»»» googlepay|object|false|none|none|
|»»»» account_holder|object|false|none|The account holder's details.|
|»»»» total_price_status|string|false|none|The status of the Google Pay payment [total price](https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo).|
|»»» stored_card|object|false|none|Configuration options specific to stored card payments.|
|»»»» customer_id|string|false|none|The unique identifier for an existing [customer](https://api-reference.checkout.com/#tag/Customers). Enables the stored card payment method if the customer has one or more payment instruments stored.<br><br>This value takes precedence over `payment_method_configuration.stored_card.instrument_ids` when choosing the stored cards to present to the customer.|
|»»»» instrument_ids|[string]|false|none|The unique identifiers for card instruments. Enables stored card payment method if any  exists.<br><br>The first valid payment instrument in the list is shown to the customer as the default option.  <br/><br>Alternatively, you can specify a default payment instrument by providing its ID in the `payment_method_configuration.stored_card.default_instrument_id` field.|
|»»»» default_instrument_id|string|false|none|The unique identifier for the payment instrument to present to the customer as the default option.|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» customer_retry|object|false|none|Configuration for asynchronous retries.|
|»» max_attempts|integer|true|none|The maximum number of authorization retry attempts, excluding the initial authorization.|
|» ip_address|[IPAddress](#schemaipaddress)|false|none|The Customers IP address. Only IPv4 and IPv6 addresses are accepted.|

#### Enumerated Values

|Property|Value|
|---|---|
|total_type|pending|
|total_type|final|
|total_price_status|estimated|
|total_price_status|final|

<h2 id="tocS_CreatePaymentSessionsResponse">CreatePaymentSessionsResponse</h2>
<!-- backwards compatibility -->
<a id="schemacreatepaymentsessionsresponse"></a>
<a id="schema_CreatePaymentSessionsResponse"></a>
<a id="tocScreatepaymentsessionsresponse"></a>
<a id="tocscreatepaymentsessionsresponse"></a>

```json
{
  "id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
  "payment_session_token": "string",
  "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payment-sessions/ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentSessionId](#schemapaymentsessionid)|true|none|The Payment Sessions unique identifier|
|payment_session_token|string|true|none|A unique token representing the payment session, which you must provide when you initialize [Flow](https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/get-started-with-flow#Step_2:_Initialize_and_mount_Flow_).<br><br>Do not log or store this value.|
|payment_session_secret|[PaymentSessionSecret](#schemapaymentsessionsecret)|true|none|The secret used by Flow to authenticate payment session requests.<br><br>Do not log or store this value.|
|_links|object|true|none|The links related to the Payment Session.|
|» self|object|true|none|The URI of the Payment Session.|
|»» href|string|true|none|The link URL|

<h2 id="tocS_PaymentSessionsRateLimitedResponse">PaymentSessionsRateLimitedResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsratelimitedresponse"></a>
<a id="schema_PaymentSessionsRateLimitedResponse"></a>
<a id="tocSpaymentsessionsratelimitedresponse"></a>
<a id="tocspaymentsessionsratelimitedresponse"></a>

```json
{
  "request_id": "string",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|true|none|none|
|error_type|string|true|none|none|
|error_codes|[string]|true|none|none|

<h2 id="tocS_PaymentSessionsValidationErrorResponse">PaymentSessionsValidationErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsvalidationerrorresponse"></a>
<a id="schema_PaymentSessionsValidationErrorResponse"></a>
<a id="tocSpaymentsessionsvalidationerrorresponse"></a>
<a id="tocspaymentsessionsvalidationerrorresponse"></a>

```json
{
  "request_id": "string",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|true|none|none|
|error_type|string|true|none|none|
|error_codes|[string]|true|none|none|

<h2 id="tocS_PaymentSessionBilling">PaymentSessionBilling</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionbilling"></a>
<a id="schema_PaymentSessionBilling"></a>
<a id="tocSpaymentsessionbilling"></a>
<a id="tocspaymentsessionbilling"></a>

```json
{
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

The billing details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address|[Address](#schemaaddress)|true|none|The billing address.|
|phone|[PaymentInterfacesPhoneNumber](#schemapaymentinterfacesphonenumber)|false|none|The phone number associated with the billing address|

<h2 id="tocS_PaymentSessionCaptureFlag">PaymentSessionCaptureFlag</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessioncaptureflag"></a>
<a id="schema_PaymentSessionCaptureFlag"></a>
<a id="tocSpaymentsessioncaptureflag"></a>
<a id="tocspaymentsessioncaptureflag"></a>

```json
true

```

Specifies whether to capture the payment, if applicable.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|boolean|false|none|Specifies whether to capture the payment, if applicable.|

<h2 id="tocS_PaymentSessionCaptureOn">PaymentSessionCaptureOn</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessioncaptureon"></a>
<a id="schema_PaymentSessionCaptureOn"></a>
<a id="tocSpaymentsessioncaptureon"></a>
<a id="tocspaymentsessioncaptureon"></a>

```json
"2024-01-01T09:15:30Z"

```

A timestamp specifying when to capture the payment, as an ISO 8601 code. If a value is provided, `capture` is automatically set to `true`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(date-time)|false|none|A timestamp specifying when to capture the payment, as an ISO 8601 code. If a value is provided, `capture` is automatically set to `true`.|

<h2 id="tocS_PaymentSessionCurrency">PaymentSessionCurrency</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessioncurrency"></a>
<a id="schema_PaymentSessionCurrency"></a>
<a id="tocSpaymentsessioncurrency"></a>
<a id="tocspaymentsessioncurrency"></a>

```json
"USD"

```

The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>.|

<h2 id="tocS_PaymentSessionCustomer">PaymentSessionCustomer</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessioncustomer"></a>
<a id="schema_PaymentSessionCustomer"></a>
<a id="tocSpaymentsessioncustomer"></a>
<a id="tocspaymentsessioncustomer"></a>

```json
{
  "email": "jia.tsang@example.com",
  "name": "Jia Tsang",
  "id": "string",
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "tax_number": "string",
  "summary": {
    "registration_date": "2023-05-01",
    "first_transaction_date": "2023-07-01",
    "last_payment_date": "2023-08-01",
    "total_order_count": 15,
    "last_payment_amount": 500,
    "is_premium_customer": true,
    "is_returning_customer": true,
    "lifetime_value": 500
  }
}

```

The customer's details. Required if `source.type` is `tamara`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|email|string(email)|false|none|The customer's email address. Required if `source.type` is `tamara`.|
|name|string|false|none|The customer's name. Required if `source.type` is `tamara`.|
|id|string|false|none|The unique identifier for an existing customer.|
|phone|[PaymentInterfacesPhoneNumber](#schemapaymentinterfacesphonenumber)|false|none|The customer's phone number. Required if `source.type` is `tamara`.|
|tax_number|string|false|none|The customer's value-added tax (VAT) registration number.|
|summary|[PaymentInterfacesCustomerSummary](#schemapaymentinterfacescustomersummary)|false|none|Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`|

<h2 id="tocS_PaymentSessionId">PaymentSessionId</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionid"></a>
<a id="schema_PaymentSessionId"></a>
<a id="tocSpaymentsessionid"></a>
<a id="tocspaymentsessionid"></a>

```json
"ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ"

```

The Payment Sessions unique identifier

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The Payment Sessions unique identifier|

<h2 id="tocS_PaymentSessionMetadata">PaymentSessionMetadata</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionmetadata"></a>
<a id="schema_PaymentSessionMetadata"></a>
<a id="tocSpaymentsessionmetadata"></a>
<a id="tocspaymentsessionmetadata"></a>

```json
{
  "coupon_code": "NY2018"
}

```

Allows you to store additional information about a transaction with custom fields and up to five user-defined fields, which can be used for reporting purposes. You can supply fields of type `string`, `number`, and `boolean` within the `metadata` object. Arrays and objects are not supported.

You can provide up to 18 metadata fields per API call, but the value of each field must not exceed 255 characters in length.

You can also reference [`metadata` properties](https://www.checkout.com/docs/business-operations/prevent-fraud/understand-fraud-detection#Metadata) in your custom rules for Fraud Detection. For example, `$coupon_code = '1234'`.

### Properties

*None*

<h2 id="tocS_PaymentSessionPaymentPlanRecurring">PaymentSessionPaymentPlanRecurring</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionpaymentplanrecurring"></a>
<a id="schema_PaymentSessionPaymentPlanRecurring"></a>
<a id="tocSpaymentsessionpaymentplanrecurring"></a>
<a id="tocspaymentsessionpaymentplanrecurring"></a>

```json
{
  "amount_variability": "Variable",
  "days_between_payments": 28,
  "total_number_of_payments": 5,
  "current_payment_number": 3,
  "expiry": "20251031",
  "name": "Subscription 1234",
  "start_date": "20260507",
  "amount": 1234
}

```

The information to process a recurring payment request. To be used when the payment_type is Recurring.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|amount_variability|string|false|none|Specifies whether the amount is fixed or variable for each recurrence.|
|days_between_payments|integer|false|none|Indicates the minimum number of days between payments.|
|total_number_of_payments|integer|false|none|Indicates the agreed total number of payments.|
|current_payment_number|integer|false|none|The number of the current installment payment.|
|expiry|string|false|none|The date after which no further payments will be performed, in the format YYYYMMDD.|
|name|string|false|none|The name of the payment plan.<br><br>Required when `source.type` is `blik`. For Blik merchant-initiated requests using an external `partner_agreement_id`, this value is used as the Blik Alias Label.|
|start_date|string|false|none|The date on which the first payment will be taken, in `YYYYMMDD` format.<br><br>Required when `source.type` is `blik` and the recurring agreement is created without an initial payment (`amount` set to `0`).|
|amount|integer|false|none|The amount to charge for each payment in the plan, in the [minor currency unit](https://www.checkout.com/docs/resources/calculating-the-amount).<br><br>Required when `source.type` is `blik`, `payment_plan.amount_variability` is `Fixed`, and the recurring agreement is created without an initial payment (`amount` set to `0`).|

#### Enumerated Values

|Property|Value|
|---|---|
|amount_variability|Fixed|
|amount_variability|Variable|

<h2 id="tocS_PaymentSessionPaymentType">PaymentSessionPaymentType</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionpaymenttype"></a>
<a id="schema_PaymentSessionPaymentType"></a>
<a id="tocSpaymentsessionpaymenttype"></a>
<a id="tocspaymentsessionpaymenttype"></a>

```json
"Regular"

```

Must be specified for card-not-present (CNP) payments. For example, a recurring mail order / telephone order (MOTO) payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Must be specified for card-not-present (CNP) payments. For example, a recurring mail order / telephone order (MOTO) payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|Regular|
|*anonymous*|Recurring|
|*anonymous*|MOTO|
|*anonymous*|Installment|
|*anonymous*|Unscheduled|

<h2 id="tocS_PaymentSessionProcessingChannelId">PaymentSessionProcessingChannelId</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionprocessingchannelid"></a>
<a id="schema_PaymentSessionProcessingChannelId"></a>
<a id="tocSpaymentsessionprocessingchannelid"></a>
<a id="tocspaymentsessionprocessingchannelid"></a>

```json
"string"

```

The processing channel to use for the payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The processing channel to use for the payment.|

<h2 id="tocS_PaymentSessions3DS">PaymentSessions3DS</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessions3ds"></a>
<a id="schema_PaymentSessions3DS"></a>
<a id="tocSpaymentsessions3ds"></a>
<a id="tocspaymentsessions3ds"></a>

```json
{
  "enabled": "false",
  "challenge_indicator": "no_preference",
  "allow_upgrade": true,
  "exemption": "low_value"
}

```

### Properties

anyOf - discriminator: PaymentSessions3DSIntegrated.enabled

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSessions3DSIntegrated](#schemapaymentsessions3dsintegrated)|false|none|none|

or

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSessions3DSThirdParty](#schemapaymentsessions3dsthirdparty)|false|none|Required information to process a payment that has been 3DS authenticated using a <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions#Non-hosted" target="_blank">Third Party provider</a>|

<h2 id="tocS_PaymentSessions3DSAccountInfo">PaymentSessions3DSAccountInfo</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessions3dsaccountinfo"></a>
<a id="schema_PaymentSessions3DSAccountInfo"></a>
<a id="tocSpaymentsessions3dsaccountinfo"></a>
<a id="tocspaymentsessions3dsaccountinfo"></a>

```json
{
  "purchase_count": 10,
  "account_age": "no_account",
  "add_card_attempts": 10,
  "shipping_address_age": "this_transaction",
  "account_name_matches_shipping_name": true,
  "suspicious_account_activity": true,
  "transactions_today": 10,
  "authentication_method": "no_authentication",
  "cardholder_account_age_indicator": "no_account",
  "account_change": "2019-08-24T14:15:22Z",
  "account_change_indicator": "this_transaction",
  "account_date": "2019-08-24T14:15:22Z",
  "account_password_change": "2019-08-24T14:15:22Z",
  "account_password_change_indicator": "no_change",
  "transactions_per_year": 2,
  "payment_account_age": "2019-08-24T14:15:22Z",
  "shipping_address_usage": "2019-08-24T14:15:22Z",
  "account_type": "not_applicable",
  "account_id": "string"
}

```

AccountInfo

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|purchase_count|number|false|none|The number of purchases with this cardholder's account during the last six months|
|account_age|string|false|none|The length of time that the payment account was enrolled in the cardholder's account|
|add_card_attempts|number|false|none|The number of _Add Card_ attempts in the last 24 hours|
|shipping_address_age|string|false|none|Indicates when the shipping address for this transaction was first used|
|account_name_matches_shipping_name|boolean|false|none|Indicates if the cardholder name on the account is identical to the shipping name used for this transaction|
|suspicious_account_activity|boolean|false|none|Indicates whether suspicious activity on the cardholder account has been observed|
|transactions_today|number|false|none|The number of transactions (successful and abandoned) for the cardholder account across all payment accounts in the previous 24 hours|
|authentication_method|string|false|none|Information about how the cardholder was authenticated before or during the transaction|
|cardholder_account_age_indicator|string|false|none|The length of time the cardholder has held the account with the 3DS Requestor|
|account_change|string(date-time)|false|none|The UTC date and time the cardholder’s account with the 3DS Requestor was last changed, in ISO 8601 format.<br><br>Changes that affect this value include:<br>- updating the billing or shipping address<br>- adding a new payment account<br>- adding a new user|
|account_change_indicator|string|false|none|The amount of time since the cardholder’s account information with the 3DS Requestor was last changed.<br><br>Changes that affect this value include:<br>- updating the billing or shipping address<br>- adding a new payment account<br>- adding a new user|
|account_date|string(date-time)|false|none|The UTC date and time the cardholder opened the account with the 3DS Requestor, in ISO 8601 format.|
|account_password_change|string(date-time)|false|none|The UTC date and time the cardholder’s account with the 3DS Requestor was last reset or had a password change, in ISO 8601 format.|
|account_password_change_indicator|string|false|none|The amount of time since the cardholder’s account with the 3DS Requestor was last reset or had a password change.|
|transactions_per_year|integer|false|none|The number of transactions associated with the cardholder's account with the 3DS Requestor in the previous year. This value includes both successful and abandoned transactions, across all payment accounts. <br><br>Set this value to `999` if the number of transactions is `1000` or greater.|
|payment_account_age|string(date-time)|false|none|The UTC date and time the payment account was enrolled in the cardholder’s account with the 3DS Requestor, in ISO 8601 format.|
|shipping_address_usage|string(date-time)|false|none|The UTC date and time the shipping address used for the transaction was first used with the 3DS Requestor, in ISO 8601 format.|
|account_type|string|false|none|The type of account, in the case of a card product with multiple accounts.|
|account_id|string|false|none|Additional information about the account optionally provided by the 3DS Requestor|

#### Enumerated Values

|Property|Value|
|---|---|
|account_age|no_account|
|account_age|created_during_transaction|
|account_age|less_than_thirty_days|
|account_age|thirty_to_sixty_days|
|account_age|more_than_sixty_days|
|shipping_address_age|this_transaction|
|shipping_address_age|less_than_thirty_days|
|shipping_address_age|thirty_to_sixty_days|
|shipping_address_age|more_than_sixty_days|
|authentication_method|no_authentication|
|authentication_method|own_credentials|
|authentication_method|federated_id|
|authentication_method|issuer_credentials|
|authentication_method|third_party_authentication|
|authentication_method|fido|
|cardholder_account_age_indicator|no_account|
|cardholder_account_age_indicator|this_transaction|
|cardholder_account_age_indicator|less_than_thirty_days|
|cardholder_account_age_indicator|thirty_to_sixty_days|
|cardholder_account_age_indicator|more_than_sixty_days|
|account_change_indicator|this_transaction|
|account_change_indicator|less_than_thirty_days|
|account_change_indicator|thirty_to_sixty_days|
|account_change_indicator|more_than_sixty_days|
|account_password_change_indicator|no_change|
|account_password_change_indicator|this_transaction|
|account_password_change_indicator|less_than_thirty_days|
|account_password_change_indicator|thirty_to_sixty_days|
|account_password_change_indicator|more_than_sixty_days|
|account_type|not_applicable|
|account_type|credit|
|account_type|debit|

<h2 id="tocS_PaymentSessions3DSIntegrated">PaymentSessions3DSIntegrated</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessions3dsintegrated"></a>
<a id="schema_PaymentSessions3DSIntegrated"></a>
<a id="tocSpaymentsessions3dsintegrated"></a>
<a id="tocspaymentsessions3dsintegrated"></a>

```json
{
  "enabled": "false",
  "challenge_indicator": "no_preference",
  "allow_upgrade": true,
  "exemption": "low_value"
}

```

Integrated authentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|string|true|none|Whether to process this payment as a 3D Secure payment. Payments where `merchant_initiated` is `true` will be processed as <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/request-3ri-authentication" target="_blank">3DS Requestor Initiated.</a>|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSessions3DSIntegratedNonEnabled](#schemapaymentsessions3dsintegratednonenabled)|false|none|3DS authentication not enabled|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentSessions3DSIntegratedEnabled](#schemapaymentsessions3dsintegratedenabled)|false|none|3DS authentication enabled|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|enabled|false|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|

<h2 id="tocS_PaymentSessions3DSIntegratedEnabled">PaymentSessions3DSIntegratedEnabled</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessions3dsintegratedenabled"></a>
<a id="schema_PaymentSessions3DSIntegratedEnabled"></a>
<a id="tocSpaymentsessions3dsintegratedenabled"></a>
<a id="tocspaymentsessions3dsintegratedenabled"></a>

```json
{
  "enabled": "true",
  "challenge_indicator": "no_preference",
  "attempt_n3d": true,
  "exemption": "low_value",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string"
  }
}

```

true

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|string|true|none|Whether to process this payment as a 3D Secure payment. Payments where `merchant_initiated` is `true` will be processed as <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/request-3ri-authentication" target="_blank">3DS Requestor Initiated.</a>|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|attempt_n3d|boolean|false|none|Applies only when `3ds.enabled` is set to `true`. Set to `true` to attempt the payment without 3DS when the issuer, card, or network doesn’t support 3DS.|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://docs.checkout.com/four/payments/regulation-support/sca-compliance-guide#SCAcomplianceguide-PossibleSCAexemptionsexemptions" target="_blank">SCA compliance guide</a>|
|account_info|[PaymentSessions3DSAccountInfo](#schemapaymentsessions3dsaccountinfo)|false|none|Additional information about the cardholder's account|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|exemption|low_value|
|exemption|trusted_listing|
|exemption|trusted_listing_prompt|
|exemption|transaction_risk_assessment|
|exemption|data_share|

<h2 id="tocS_PaymentSessions3DSIntegratedNonEnabled">PaymentSessions3DSIntegratedNonEnabled</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessions3dsintegratednonenabled"></a>
<a id="schema_PaymentSessions3DSIntegratedNonEnabled"></a>
<a id="tocSpaymentsessions3dsintegratednonenabled"></a>
<a id="tocspaymentsessions3dsintegratednonenabled"></a>

```json
{
  "enabled": "false",
  "challenge_indicator": "no_preference",
  "allow_upgrade": true,
  "exemption": "low_value"
}

```

false

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|string|true|none|Whether to process this payment as a 3D Secure payment. Payments where `merchant_initiated` is `true` will be processed as <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/request-3ri-authentication" target="_blank">3DS Requestor Initiated.</a>|
|challenge_indicator|string|false|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge.|
|allow_upgrade|boolean|false|none|Indicates whether to process this payment as 3D Secure if the authorization was soft declined due to 3DS authentication required. For processing channels created before October 12, 2022, the value will default to `false`.|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://docs.checkout.com/four/payments/regulation-support/sca-compliance-guide#SCAcomplianceguide-PossibleSCAexemptionsexemptions" target="_blank">SCA compliance guide</a>|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|false|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|exemption|low_value|
|exemption|trusted_listing|
|exemption|trusted_listing_prompt|
|exemption|transaction_risk_assessment|
|exemption|3ds_outage|
|exemption|sca_delegation|
|exemption|out_of_sca_scope|
|exemption|low_risk_program|
|exemption|recurring_operation|
|exemption|data_share|
|exemption|other|

<h2 id="tocS_PaymentSessions3DSThirdParty">PaymentSessions3DSThirdParty</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessions3dsthirdparty"></a>
<a id="schema_PaymentSessions3DSThirdParty"></a>
<a id="tocSpaymentsessions3dsthirdparty"></a>
<a id="tocspaymentsessions3dsthirdparty"></a>

```json
{
  "enabled": true,
  "eci": "05",
  "cryptogram": "AgAAAAAAAIR8CQrXcIhbQAAAAAA=",
  "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
  "version": "2.0.1",
  "exemption": "low_value"
}

```

Third party authentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|enabled|boolean|true|none|Whether to process this payment as a 3D Secure payment|
|eci|string|true|none|The Electronic Commerce Indicator security level associated with the 3D Secure enrollment result. Required if using a third-party merchant plug-in (MPI)|
|cryptogram|string|true|none|A Base64 encoded cryptographic identifier (CAVV) used by the card schemes to validate the cardholder authentication result (3D Secure). Required if using an external MPI|
|xid|string|true|none|The 3D Secure transaction identifier. Required if using an external MPI with 3D Secure 2.X.X and a Mastercard card, or with 3D Secure 1.X.X for any supported card scheme|
|version|string|true|none|Indicates the version of 3D Secure that was used for authentication. Defaults to 1.0.0 if not provided|
|exemption|string|false|none|Specifies an exemption reason so that the payment is not processed using 3D Secure authentication. Learn more about exemptions in our <a href="https://docs.checkout.com/four/payments/regulation-support/sca-compliance-guide#SCAcomplianceguide-PossibleSCAexemptionsexemptions" target="_blank">SCA compliance guide</a>|

#### Enumerated Values

|Property|Value|
|---|---|
|enabled|true|
|exemption|low_value|
|exemption|secure_corporate_payment|
|exemption|trusted_listing|
|exemption|transaction_risk_assessment|
|exemption|3ds_outage|
|exemption|sca_delegation|
|exemption|out_of_sca_scope|
|exemption|other|
|exemption|low_risk_program|
|exemption|recurring_operation|

<h2 id="tocS_01_PaymentSessionRequest_AccountHolderIndividual">01_PaymentSessionRequest_AccountHolderIndividual</h2>
<!-- backwards compatibility -->
<a id="schema01_paymentsessionrequest_accountholderindividual"></a>
<a id="schema_01_PaymentSessionRequest_AccountHolderIndividual"></a>
<a id="tocS01_paymentsessionrequest_accountholderindividual"></a>
<a id="tocs01_paymentsessionrequest_accountholderindividual"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "account_name_inquiry": true
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The account holder type.|
|first_name|string|true|none|The account holder's first name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `first_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>- a single character<br>- all non-alphabetic characters|
|middle_name|string|false|none|The account holder's middle name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This field is required if the `issuer_country` value returned in the [card metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response) response is `ZA`.|
|last_name|string|true|none|The account holder's last name.<br><br>The combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.<br>This must be a valid legal name. The following formats for the `last_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>  - a single character<br>  - all non-alphabetic characters|
|account_name_inquiry|boolean|false|none|Specifies whether to perform an account name inquiry (ANI) check with the scheme. <br><br>This is only valid for Visa and Mastercard payments.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|individual|

<h2 id="tocS_02_PaymentSessionRequest_AccountHolderCorporate">02_PaymentSessionRequest_AccountHolderCorporate</h2>
<!-- backwards compatibility -->
<a id="schema02_paymentsessionrequest_accountholdercorporate"></a>
<a id="schema_02_PaymentSessionRequest_AccountHolderCorporate"></a>
<a id="tocS02_paymentsessionrequest_accountholdercorporate"></a>
<a id="tocs02_paymentsessionrequest_accountholdercorporate"></a>

```json
{
  "type": "corporate",
  "company_name": "string",
  "account_name_inquiry": true
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The account holder type.|
|company_name|string|true|none|The account holder's company name.<br><br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>  - a single character<br>  - all non-alphabetic characters|
|account_name_inquiry|boolean|false|none|Specifies whether to perform an account name inquiry (ANI) check with the scheme. <br><br>This is only valid for Visa and Mastercard payments.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|corporate|

<h2 id="tocS_03_PaymentSessionRequest_AccountHolderGovernment">03_PaymentSessionRequest_AccountHolderGovernment</h2>
<!-- backwards compatibility -->
<a id="schema03_paymentsessionrequest_accountholdergovernment"></a>
<a id="schema_03_PaymentSessionRequest_AccountHolderGovernment"></a>
<a id="tocS03_paymentsessionrequest_accountholdergovernment"></a>
<a id="tocs03_paymentsessionrequest_accountholdergovernment"></a>

```json
{
  "type": "government",
  "company_name": "string",
  "account_name_inquiry": true
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The account holder type.|
|company_name|string|true|none|The account holder's company name.<br><br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br> <br>  - a single character<br>  - all non-alphabetic characters|
|account_name_inquiry|boolean|false|none|Specifies whether to perform an account name inquiry (ANI) check with the scheme. <br><br>This is only valid for Visa and Mastercard payments.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|government|

<h2 id="tocS_PaymentSessionsAmount">PaymentSessionsAmount</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsamount"></a>
<a id="schema_PaymentSessionsAmount"></a>
<a id="tocSpaymentsessionsamount"></a>
<a id="tocspaymentsessionsamount"></a>

```json
1000

```

The payment amount. Provide a value of `0` to perform a card verification.

The amount must be provided in the <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="blank">minor currency unit</a>.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|integer|false|none|The payment amount. Provide a value of `0` to perform a card verification.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="blank">minor currency unit</a>.|

<h2 id="tocS_PaymentSessionsBillingDescriptor">PaymentSessionsBillingDescriptor</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsbillingdescriptor"></a>
<a id="schema_PaymentSessionsBillingDescriptor"></a>
<a id="tocSpaymentsessionsbillingdescriptor"></a>
<a id="tocspaymentsessionsbillingdescriptor"></a>

```json
{
  "name": "string",
  "city": "string",
  "reference": "string"
}

```

A description of the purchase, which is displayed on the customer's statement.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|A description for the payment, which will be displayed on the customer's card statement. Only applicable for card payments.|
|city|string|true|none|The city from which the payment originated. Only applicable for card payments.|
|reference|string|false|none|The reference to display on the customer's bank statement. Required for payouts to bank accounts.|

<h2 id="tocS_PaymentSessionSecret">PaymentSessionSecret</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsecret"></a>
<a id="schema_PaymentSessionSecret"></a>
<a id="tocSpaymentsessionsecret"></a>
<a id="tocspaymentsessionsecret"></a>

```json
"pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"

```

The secret used by Flow to authenticate payment session requests.

Do not log or store this value.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The secret used by Flow to authenticate payment session requests.<br><br>Do not log or store this value.|

<h2 id="tocS_PaymentSessionsFailureUrl">PaymentSessionsFailureUrl</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsfailureurl"></a>
<a id="schema_PaymentSessionsFailureUrl"></a>
<a id="tocSpaymentsessionsfailureurl"></a>
<a id="tocspaymentsessionsfailureurl"></a>

```json
"https://example.com/payments/failure"

```

Overrides the default failure redirect URL configured on your account, for payment methods that require a redirect.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(uri)|false|none|Overrides the default failure redirect URL configured on your account, for payment methods that require a redirect.|

<h2 id="tocS_PaymentSessionShipping">PaymentSessionShipping</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionshipping"></a>
<a id="schema_PaymentSessionShipping"></a>
<a id="tocSpaymentsessionshipping"></a>
<a id="tocspaymentsessionshipping"></a>

```json
{
  "address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

The shipping details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address|[Address](#schemaaddress)|false|none|The shipping address|
|phone|[PaymentInterfacesPhoneNumber](#schemapaymentinterfacesphonenumber)|false|none|The phone number associated with the shipping address.|

<h2 id="tocS_PaymentSessionsItems">PaymentSessionsItems</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsitems"></a>
<a id="schema_PaymentSessionsItems"></a>
<a id="tocSpaymentsessionsitems"></a>
<a id="tocspaymentsessionsitems"></a>

```json
[
  {
    "reference": "string",
    "commodity_code": "string",
    "unit_of_measure": "string",
    "total_amount": 1000,
    "tax_amount": 1000,
    "discount_amount": 1000,
    "url": "string",
    "image_url": "string",
    "name": "Gold Necklace",
    "quantity": 1,
    "unit_price": 1000
  }
]

```

The line items in the order.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|false|none|The item reference or product stock keeping unit (SKU).|
|commodity_code|string|false|none|A code identifying a commodity for value-added tax (VAT) purposes.|
|unit_of_measure|string|false|none|The unit in which the item is measured, as a Unit of Measure (UoM) code.|
|total_amount|integer|false|none|The total cost of the line item, in <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="blank">minor currency units</a>. The value should include any tax and discounts applied using the formula: `value = (quantity x unit_price) - discount_amount`.|
|tax_amount|integer|false|none|The total amount of sales tax or value-added tax (VAT) on the total purchase amount. Tax should be included in the total purchase amount.|
|discount_amount|integer|false|none|The discount applied to each invoice line item.|
|url|string|false|none|Link to the line item's product page.|
|image_url|string|false|none|Link to the line item's product image.|
|name|string|true|none|The descriptive name of the line item.|
|quantity|integer|true|none|The number of line items.|
|unit_price|integer|true|none|The unit price of the item, in <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="blank">minor currency units</a>.|

<h2 id="tocS_PaymentSessionsPaymentMethodConfigurationBase">PaymentSessionsPaymentMethodConfigurationBase</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionspaymentmethodconfigurationbase"></a>
<a id="schema_PaymentSessionsPaymentMethodConfigurationBase"></a>
<a id="tocSpaymentsessionspaymentmethodconfigurationbase"></a>
<a id="tocspaymentsessionspaymentmethodconfigurationbase"></a>

```json
{
  "applepay": {
    "store_payment_details": "disabled"
  },
  "card": {
    "store_payment_details": "disabled"
  },
  "googlepay": {
    "store_payment_details": "disabled"
  }
}

```

Configurations for payment method-specific settings.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|applepay|object|false|none|Configuration options specific to Apple Pay payments.|
|» store_payment_details|[PaymentSessionsStorePaymentDetails](#schemapaymentsessionsstorepaymentdetails)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|card|object|false|none|Configuration options specific to card payments.|
|» store_payment_details|[PaymentSessionsStorePaymentDetailsCard](#schemapaymentsessionsstorepaymentdetailscard)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled` or `collect_consent`, you must:<br><br>- Have obtained consent from the cardholder to store their payment details<br>- Provide `customer.id` or `customer.email` in the request<br><br>You do not need to provide this field if `payment_type` is set to one of the following values:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|
|googlepay|object|false|none|Configuration options specific to Google Pay payments.|
|» store_payment_details|[PaymentSessionsStorePaymentDetails](#schemapaymentsessionsstorepaymentdetails)|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|

<h2 id="tocS_PaymentSessionsSessionData">PaymentSessionsSessionData</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionssessiondata"></a>
<a id="schema_PaymentSessionsSessionData"></a>
<a id="tocSpaymentsessionssessiondata"></a>
<a id="tocspaymentsessionssessiondata"></a>

```json
"string"

```

A unique token representing the additional customer data captured by Flow, as received from the <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/flow-library-reference/flowcomponent#handleSubmit(FlowComponent,_SubmitData)">handleSubmit</a> callback.

Do not log or store this value.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|A unique token representing the additional customer data captured by Flow, as received from the <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/flow-library-reference/flowcomponent#handleSubmit(FlowComponent,_SubmitData)">handleSubmit</a> callback.<br><br>Do not log or store this value.|

<h2 id="tocS_PaymentSessionsStorePaymentDetails">PaymentSessionsStorePaymentDetails</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsstorepaymentdetails"></a>
<a id="schema_PaymentSessionsStorePaymentDetails"></a>
<a id="tocSpaymentsessionsstorepaymentdetails"></a>
<a id="tocspaymentsessionsstorepaymentdetails"></a>

```json
"disabled"

```

Specifies whether you intend to store the cardholder's payment details.

If you set this field to `enabled`, you must:

- have obtained consent from the cardholder to store their payment details
- provide a customer ID or email address in the request

If the request's `payment_type` is set to one of the following values, you do not need to provide this field:

 - `Installment`
 - `Recurring`
 - `Unscheduled`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled`, you must:<br><br>- have obtained consent from the cardholder to store their payment details<br>- provide a customer ID or email address in the request<br><br>If the request's `payment_type` is set to one of the following values, you do not need to provide this field:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|disabled|
|*anonymous*|enabled|

<h2 id="tocS_PaymentSessionsStorePaymentDetailsCard">PaymentSessionsStorePaymentDetailsCard</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionsstorepaymentdetailscard"></a>
<a id="schema_PaymentSessionsStorePaymentDetailsCard"></a>
<a id="tocSpaymentsessionsstorepaymentdetailscard"></a>
<a id="tocspaymentsessionsstorepaymentdetailscard"></a>

```json
"disabled"

```

Specifies whether you intend to store the cardholder's payment details.

If you set this field to `enabled` or `collect_consent`, you must:

- Have obtained consent from the cardholder to store their payment details
- Provide `customer.id` or `customer.email` in the request

You do not need to provide this field if `payment_type` is set to one of the following values:

 - `Installment`
 - `Recurring`
 - `Unscheduled`

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Specifies whether you intend to store the cardholder's payment details.<br><br>If you set this field to `enabled` or `collect_consent`, you must:<br><br>- Have obtained consent from the cardholder to store their payment details<br>- Provide `customer.id` or `customer.email` in the request<br><br>You do not need to provide this field if `payment_type` is set to one of the following values:<br><br> - `Installment`<br> - `Recurring`<br> - `Unscheduled`|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|disabled|
|*anonymous*|enabled|
|*anonymous*|collect_consent|

<h2 id="tocS_PaymentSessionsSuccessUrl">PaymentSessionsSuccessUrl</h2>
<!-- backwards compatibility -->
<a id="schemapaymentsessionssuccessurl"></a>
<a id="schema_PaymentSessionsSuccessUrl"></a>
<a id="tocSpaymentsessionssuccessurl"></a>
<a id="tocspaymentsessionssuccessurl"></a>

```json
"https://example.com/payments/success"

```

Overrides the default success redirect URL configured on your account, for payment methods that require a redirect.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(uri)|false|none|Overrides the default success redirect URL configured on your account, for payment methods that require a redirect.|

<h2 id="tocS_SubmitPaymentSessionsActionRequiredResponse">SubmitPaymentSessionsActionRequiredResponse</h2>
<!-- backwards compatibility -->
<a id="schemasubmitpaymentsessionsactionrequiredresponse"></a>
<a id="schema_SubmitPaymentSessionsActionRequiredResponse"></a>
<a id="tocSsubmitpaymentsessionsactionrequiredresponse"></a>
<a id="tocssubmitpaymentsessionsactionrequiredresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Action Required",
  "type": "alipay_cn",
  "action": {}
}

```

Response for an action required payment session payment.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment's status.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|
|action|object|true|none|Instruction for further payment action.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Action Required|

<h2 id="tocS_SubmitPaymentSessionsProcessedResponse">SubmitPaymentSessionsProcessedResponse</h2>
<!-- backwards compatibility -->
<a id="schemasubmitpaymentsessionsprocessedresponse"></a>
<a id="schema_SubmitPaymentSessionsProcessedResponse"></a>
<a id="tocSsubmitpaymentsessionsprocessedresponse"></a>
<a id="tocssubmitpaymentsessionsprocessedresponse"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Approved",
  "type": "alipay_cn"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment's status.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[SubmitPaymentSessionsProcessedResponseStatusApproved](#schemasubmitpaymentsessionsprocessedresponsestatusapproved)|false|none|Response for an approved payment session payment.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[SubmitPaymentSessionsProcessedResponseStatusDeclined](#schemasubmitpaymentsessionsprocessedresponsestatusdeclined)|false|none|Response for a declined payment session payment.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Approved|
|status|Declined|

<h2 id="tocS_SubmitPaymentSessionsProcessedResponseStatusApproved">SubmitPaymentSessionsProcessedResponseStatusApproved</h2>
<!-- backwards compatibility -->
<a id="schemasubmitpaymentsessionsprocessedresponsestatusapproved"></a>
<a id="schema_SubmitPaymentSessionsProcessedResponseStatusApproved"></a>
<a id="tocSsubmitpaymentsessionsprocessedresponsestatusapproved"></a>
<a id="tocssubmitpaymentsessionsprocessedresponsestatusapproved"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Approved",
  "type": "alipay_cn"
}

```

Approved

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment was approved.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Approved|

<h2 id="tocS_SubmitPaymentSessionsProcessedResponseStatusDeclined">SubmitPaymentSessionsProcessedResponseStatusDeclined</h2>
<!-- backwards compatibility -->
<a id="schemasubmitpaymentsessionsprocessedresponsestatusdeclined"></a>
<a id="schema_SubmitPaymentSessionsProcessedResponseStatusDeclined"></a>
<a id="tocSsubmitpaymentsessionsprocessedresponsestatusdeclined"></a>
<a id="tocssubmitpaymentsessionsprocessedresponsestatusdeclined"></a>

```json
{
  "id": "pay_mbabizu24mvu3mela5njyhpit4",
  "status": "Declined",
  "type": "alipay_cn",
  "decline_reason": "string"
}

```

Declined

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[PaymentId](#schemapaymentid)|true|none|The payment identifier.|
|status|string|true|none|The payment was declined.|
|type|[PaymentInterfacesPaymentMethod](#schemapaymentinterfacespaymentmethod)|true|none|The payment method name.|
|decline_reason|string|true|none|The reason for the payment decline.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Declined|

<h2 id="tocS_SubmitPaymentSessionsRequest">SubmitPaymentSessionsRequest</h2>
<!-- backwards compatibility -->
<a id="schemasubmitpaymentsessionsrequest"></a>
<a id="schema_SubmitPaymentSessionsRequest"></a>
<a id="tocSsubmitpaymentsessionsrequest"></a>
<a id="tocssubmitpaymentsessionsrequest"></a>

```json
{
  "session_data": "string",
  "amount": 1000,
  "currency": "USD",
  "billing": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "success_url": "https://example.com/payments/success",
  "failure_url": "https://example.com/payments/failure",
  "payment_type": "Regular",
  "billing_descriptor": {
    "name": "string",
    "city": "string",
    "reference": "string"
  },
  "reference": "ORD-123A",
  "customer": {
    "email": "jia.tsang@example.com",
    "name": "Jia Tsang",
    "id": "string",
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    },
    "tax_number": "string",
    "summary": {
      "registration_date": "2023-05-01",
      "first_transaction_date": "2023-07-01",
      "last_payment_date": "2023-08-01",
      "total_order_count": 15,
      "last_payment_amount": 500,
      "is_premium_customer": true,
      "is_returning_customer": true,
      "lifetime_value": 500
    }
  },
  "shipping": {
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "phone": {
      "country_code": "+1",
      "number": "415 555 2671"
    }
  },
  "items": [
    {
      "reference": "string",
      "commodity_code": "string",
      "unit_of_measure": "string",
      "total_amount": 1000,
      "tax_amount": 1000,
      "discount_amount": 1000,
      "url": "string",
      "image_url": "string",
      "name": "Gold Necklace",
      "quantity": 1,
      "unit_price": 1000
    }
  ],
  "amount_allocations": [
    {
      "id": "string",
      "amount": 1,
      "reference": "ORD-123A",
      "commission": {
        "amount": 10,
        "percentage": 12.5
      }
    }
  ],
  "3ds": {
    "enabled": "false",
    "challenge_indicator": "no_preference",
    "allow_upgrade": true,
    "exemption": "low_value"
  },
  "ip_address": "90.197.169.245",
  "payment_method_configuration": {
    "applepay": {
      "store_payment_details": "disabled"
    },
    "card": {
      "store_payment_details": "disabled"
    },
    "googlepay": {
      "store_payment_details": "disabled"
    }
  },
  "recipient": {
    "dob": "1985-05-15",
    "account_number": "5555554444",
    "address": {
      "address_line1": "123 High St.",
      "address_line2": "Flat 456",
      "city": "London",
      "state": "str",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "first_name": "Jia",
    "last_name": "Tsang"
  },
  "instruction": {
    "purpose": "donations"
  },
  "processing_channel_id": "string",
  "metadata": {
    "coupon_code": "NY2018"
  },
  "sender": {},
  "capture": true,
  "capture_on": "2024-01-01T09:15:30Z",
  "processing": {
    "pan_preference": "fpan",
    "provision_network_token": true
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|session_data|[PaymentSessionsSessionData](#schemapaymentsessionssessiondata)|true|none|A unique token representing the additional customer data captured by Flow, as received from the <a href="https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/flow-library-reference/flowcomponent#handleSubmit(FlowComponent,_SubmitData)">handleSubmit</a> callback.<br><br>Do not log or store this value.|
|amount|[PaymentSessionsAmount](#schemapaymentsessionsamount)|false|none|The payment amount. Provide a value of `0` to perform a card verification.<br><br>The amount must be provided in the <a href="https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value" target="blank">minor currency unit</a>.|
|currency|[PaymentSessionCurrency](#schemapaymentsessioncurrency)|false|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a>.|
|billing|[PaymentSessionBilling](#schemapaymentsessionbilling)|false|none|The billing details.|
|success_url|[PaymentSessionsSuccessUrl](#schemapaymentsessionssuccessurl)|false|none|Overrides the default success redirect URL configured on your account, for payment methods that require a redirect.|
|failure_url|[PaymentSessionsFailureUrl](#schemapaymentsessionsfailureurl)|false|none|Overrides the default failure redirect URL configured on your account, for payment methods that require a redirect.|
|payment_type|[PaymentSessionPaymentType](#schemapaymentsessionpaymenttype)|false|none|Must be specified for card-not-present (CNP) payments. For example, a recurring mail order / telephone order (MOTO) payment.|
|billing_descriptor|[PaymentSessionsBillingDescriptor](#schemapaymentsessionsbillingdescriptor)|false|none|A description of the purchase, which is displayed on the customer's statement.|
|reference|[PaymentInterfacesReference](#schemapaymentinterfacesreference)|false|none|A reference you can use to identify the payment. For example, an order number. <br>  - For Amex payments, this must be at most 30 characters.<br>  - For Benefit payments, the reference must be a unique alphanumeric value.<br>  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.|
|customer|[PaymentSessionCustomer](#schemapaymentsessioncustomer)|false|none|The customer's details.|
|shipping|[PaymentSessionShipping](#schemapaymentsessionshipping)|false|none|The shipping details|
|items|[PaymentSessionsItems](#schemapaymentsessionsitems)|false|none|The line items in the order.|
|amount_allocations|[object]|false|none|The sub-entities that the payment is being processed on behalf of.|
|» id|string|true|none|The sub-entity's ID.|
|» amount|integer|true|none|The split amount, in <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>. The sum of all split amounts must be equal to the payment amount. The split amount will be credited to your sub-entity's currency account.|
|» reference|string|false|none|A reference you can use to identify the split. For example, an order number.|
|» commission|object|false|none|The commission you'd like to collect from the split, calculated using the formula: `commission = (amount * commission.percentage) + commission.amount`. The commission cannot exceed the split amount. Commission will be credited to your currency account.|
|»» amount|integer|false|none|An optional commission to collect, as a fixed amount in <a href="https://www.checkout.com/docs/resources/calculating-the-amount" target="blank">minor currency units</a>.|
|»» percentage|number|false|none|An optional commission to collect, as a percentage value with up to eight decimal places.|
|3ds|[PaymentSessions3DS](#schemapaymentsessions3ds)|false|none|none|
|ip_address|[IPAddress](#schemaipaddress)|false|none|The Customer's IP address. Only IPv4 and IPv6 addresses are accepted.|
|payment_method_configuration|[PaymentSessionsPaymentMethodConfigurationBase](#schemapaymentsessionspaymentmethodconfigurationbase)|false|none|Configurations for payment method-specific settings.|
|recipient|[PaymentInterfacesRecipient](#schemapaymentinterfacesrecipient)|false|none|Information about the recipient of the payment's funds. Applies to <a href="https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction">Account Funding Transactions</a>, and VISA or Mastercard <a href="https://www.checkout.com/docs/business-operations/ensure-regulatory-compliance/requirements-for-financial-institutions">domestic UK transactions processed by financial institutions</a>.|
|instruction|object|false|none|Details about the payment instruction.|
|» purpose|[Purpose](#schemapurpose)|false|none|The purpose of the payment.<br>This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).<br>See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.|
|processing_channel_id|[PaymentSessionProcessingChannelId](#schemapaymentsessionprocessingchannelid)|false|none|The processing channel to use for the payment.|
|metadata|[PaymentSessionMetadata](#schemapaymentsessionmetadata)|false|none|Allows you to store additional information about a transaction with custom fields and up to five user-defined fields, which can be used for reporting purposes. You can supply fields of type `string`, `number`, and `boolean` within the `metadata` object. Arrays and objects are not supported.<br><br>You can provide up to 18 metadata fields per API call, but the value of each field must not exceed 255 characters in length.<br><br>You can also reference [`metadata` properties](https://www.checkout.com/docs/business-operations/prevent-fraud/understand-fraud-detection#Metadata) in your custom rules for Fraud Detection. For example, `$coupon_code = '1234'`.|
|sender|[PaymentInterfacesSender](#schemapaymentinterfacessender)|false|none|The sender of the payment.|
|capture|[PaymentSessionCaptureFlag](#schemapaymentsessioncaptureflag)|false|none|Specifies whether to capture the payment, if applicable.|
|capture_on|[PaymentSessionCaptureOn](#schemapaymentsessioncaptureon)|false|none|A timestamp specifying when to capture the payment, as an ISO 8601 code. If a value is provided, `capture` is automatically set to `true`.|
|processing|[PaymentInterfacesProcessingBase](#schemapaymentinterfacesprocessingbase)|false|none|Use the processing object to influence or override the data sent during card processing|

<h2 id="tocS_PhoneNumber">PhoneNumber</h2>
<!-- backwards compatibility -->
<a id="schemaphonenumber"></a>
<a id="schema_PhoneNumber"></a>
<a id="tocSphonenumber"></a>
<a id="tocsphonenumber"></a>

```json
{
  "country_code": "+1",
  "number": "415 555 2671"
}

```

A phone number

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|false|none|The international <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">country calling code</a>. Required if `source.type` is `tamara`.|
|number|string|false|none|The phone number. Required if `source.type` is `tamara`.|

<h2 id="tocS_BusinessDetailsCompany">BusinessDetailsCompany</h2>
<!-- backwards compatibility -->
<a id="schemabusinessdetailscompany"></a>
<a id="schema_BusinessDetailsCompany"></a>
<a id="tocSbusinessdetailscompany"></a>
<a id="tocsbusinessdetailscompany"></a>

```json
{
  "legal_name": "The Online Retailer",
  "trading_name": "Online Retail Co",
  "registered_address": {
    "address_line1": "444 Test Avenue",
    "city": "Anytown",
    "zip": "67890-1234",
    "country": "US",
    "state": "FL"
  },
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "status": "active",
  "additional_trading_names": [
    "Online Retail"
  ]
}

```

Company

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|false|read-only|The status of the business details. This describes the data in this response, not the sub-entity's own status. A suspended sub-entity can still have `active` business details.<br><br>`active` means the values are live. `pending` means a change has been submitted and is still under review, so the values shown are the ones you submitted, not the ones currently in effect.<br><br>Read-only on input. You can send a response body back unchanged in a `PUT` request, and this field is ignored.|
|legal_name|string|true|none|The legal name of the sub-entity.|
|trading_name|string|true|none|The trading name of the sub-entity, also known as the 'Doing Business As' name.|
|additional_trading_names|[string]|false|none|The collection of additional trading names for the sub-entity.|
|» Trading name|string|false|none|An additional trading name of the sub-entity.|
|registered_address|object|true|none|The registered address of the company.|
|» address_line1|string|true|none|The first line of the address.|
|» address_line2|string¦null|false|none|The second line of the address.|
|» city|string|true|none|The address city.|
|» state|string|false|none|The address state. Required for addresses in the US and France, and optional elsewhere. For US addresses, provide the two-letter ISO 3166-2 code. For French addresses, provide the department the address is in.|
|» zip|string¦null|true|none|The address ZIP code or postal code. Required, but can be `null` for countries that do not use postal codes.|
|» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code. Returned by the `GET` request, and required when you submit an address, but you cannot change the sub-entity's country.<br><br>For more information, see <a href="https://www.checkout.com/docs/developer-resources/codes/country-codes" target="_blank">Country codes</a>.|
|principal_address|object|true|none|The primary location of the company where business is performed.|
|» address_line1|string|true|none|The first line of the address.|
|» address_line2|string¦null|false|none|The second line of the address.|
|» city|string|true|none|The address city.|
|» state|string|false|none|The address state. Required for addresses in the US and France, and optional elsewhere. For US addresses, provide the two-letter ISO 3166-2 code. For French addresses, provide the department the address is in.|
|» zip|string¦null|true|none|The address ZIP code or postal code. Required, but can be `null` for countries that do not use postal codes.|
|» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code. Returned by the `GET` request, and required when you submit an address, but you cannot change the sub-entity's country.<br><br>For more information, see <a href="https://www.checkout.com/docs/developer-resources/codes/country-codes" target="_blank">Country codes</a>.|
|documents|object|false|none|Supporting documents for the change you submit. Each document is required only when you change the fields it supports, and is not requested otherwise. A document already on file satisfies the requirement, so you do not need to upload a new one.<br><br>Documents are not returned for `active` business details. For `pending` business details, the documents submitted with the change are returned.|
|» company_verification|object|false|none|A document certified by a power of attorney within the last three months.<br><br>Required when you change `legal_name`, `trading_name`, or `additional_trading_names`. If you change any of those fields without providing this document, the request fails with a `422` error that names the missing document.|
|»» type|string|true|none|The type of document used for company verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_principal_address|object|false|none|Proof of the principal place of business.<br><br>Required when you change `principal_address`. The registered office and the principal place of business are different, so this document does not cover a change to `registered_address`.|
|»» type|string|true|none|The type of document used for principal address verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_registered_address|object|false|none|Proof of the registered address of the company.<br><br>Required when you change `registered_address`. If you change both addresses, provide this document and `proof_of_principal_address`.|
|»» type|string|true|none|The type of document used for registered address verification.|
|»» front|string|true|none|The ID of the front side of the document.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|active|
|status|pending|
|type|incorporation_document|
|type|proof_of_address|
|type|proof_of_address|

<h2 id="tocS_BusinessDetailsSoleTrader">BusinessDetailsSoleTrader</h2>
<!-- backwards compatibility -->
<a id="schemabusinessdetailssoletrader"></a>
<a id="schema_BusinessDetailsSoleTrader"></a>
<a id="tocSbusinessdetailssoletrader"></a>
<a id="tocsbusinessdetailssoletrader"></a>

```json
{
  "trading_name": "The Online Retailer",
  "principal_address": {
    "address_line1": "123 Anywhere St.",
    "city": "Anytown",
    "zip": "12345-6789",
    "country": "US",
    "address_line2": "Apt. 456",
    "state": "AL"
  },
  "status": "active",
  "additional_trading_names": [
    "Online Retailer Co"
  ]
}

```

Sole trader

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|false|read-only|The status of the business details. This describes the data in this response, not the sub-entity's own status. A suspended sub-entity can still have `active` business details.<br><br>`active` means the values are live. `pending` means a change has been submitted and is still under review, so the values shown are the ones you submitted, not the ones currently in effect.<br><br>Read-only on input. You can send a response body back unchanged in a `PUT` request, and this field is ignored.|
|trading_name|string|true|none|The trading name of the sub-entity, also known as the 'Doing Business As' name.|
|additional_trading_names|[string]|false|none|The collection of additional trading names for the sub-entity.|
|» Trading name|string|false|none|An additional trading name of the sub-entity.|
|principal_address|object|true|none|The primary location where the sole trader performs business.|
|» address_line1|string|true|none|The first line of the address.|
|» address_line2|string¦null|false|none|The second line of the address.|
|» city|string|true|none|The address city.|
|» state|string|false|none|The address state. Required for addresses in the US and France, and optional elsewhere. For US addresses, provide the two-letter ISO 3166-2 code. For French addresses, provide the department the address is in.|
|» zip|string¦null|true|none|The address ZIP code or postal code. Required, but can be `null` for countries that do not use postal codes.|
|» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code. Returned by the `GET` request, and required when you submit an address, but you cannot change the sub-entity's country.<br><br>For more information, see <a href="https://www.checkout.com/docs/developer-resources/codes/country-codes" target="_blank">Country codes</a>.|
|documents|object|false|none|Supporting documents for the change you submit. Each document is required only when you change the fields it supports, and is not requested otherwise. A document already on file satisfies the requirement, so you do not need to upload a new one.<br><br>Documents are not returned for `active` business details. For `pending` business details, the documents submitted with the change are returned.|
|» company_verification|object|false|none|A document certified by a power of attorney within the last three months.<br><br>Required when you change `trading_name` or `additional_trading_names`. If you change either of those fields without providing this document, the request fails with a `422` error that names the missing document.|
|»» type|string|true|none|The type of document used for company verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_principal_address|object|false|none|Proof of the principal place of business.<br><br>Required when you change `principal_address`. If you change this field without providing this document, the request fails with a `422` error that names the missing document.|
|»» type|string|true|none|The type of document used for principal address verification.|
|»» front|string|true|none|The ID of the front side of the document.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|active|
|status|pending|
|type|incorporation_document|
|type|proof_of_address|

<h2 id="tocS_EEACompanyFull2-0">EEACompanyFull2-0</h2>
<!-- backwards compatibility -->
<a id="schemaeeacompanyfull2-0"></a>
<a id="schema_EEACompanyFull2-0"></a>
<a id="tocSeeacompanyfull2-0"></a>
<a id="tocseeacompanyfull2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "EUR"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "string",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "first_name": "string",
        "middle_name": "string",
        "last_name": "string",
        "date_of_birth": {
          "day": 1,
          "month": 1,
          "year": 1900
        },
        "phone": {
          "number": 10000000
        },
        "address": {
          "address_line1": "string",
          "address_line2": "string",
          "city": "string",
          "state": "string",
          "zip": "string",
          "country": "st"
        },
        "place_of_birth": {
          "country": "st"
        },
        "roles": [
          "ubo"
        ],
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "financial_details": {
      "annual_processing_volume": 0,
      "average_transaction_value": 0,
      "highest_transaction_value": 0,
      "currency": "EUR"
    },
    "business_type": "general_partnership",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    }
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "financial_verification": {
      "type": "financial_statement",
      "front": "stringstringstringstringstrings"
    }
  }
}

```

EEA Company - Full (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|false|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|false|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|true|none|The sub-entity's Business Registration Number. This can be a Commercial Registration or Ministry of Commerce certificate number, or any other equivalent registration number. For sub-entities based in France, this must be a SIRET number.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Information about representatives of this company.|
|»»» id|number|false|none|The representative's id.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»» last_name|string|true|none|The representative's last name.|
|»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» phone|object|false|none|The phone number of the sub-entity.|
|»»»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|»»» address|object|true|none|The representative's address.|
|»»»» address_line1|string|true|none|The first line of the address.|
|»»»» address_line2|number|false|none|The second line of the address.|
|»»»» city|string|true|none|The address city.|
|»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»» zip|string|true|none|The address zip/postal code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's roles within the company|
|»»» documents|object|true|none|A legal document used to verify identity|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|» financial_details|object|true|none|Seller financial questions and supporting documents.|
|»» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|»» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|»» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|»» currency|string|false|none|The currency used for the processing details provided.|
|» business_type|string|true|none|The legal type of the company|
|» date_of_incorporation|object|false|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|documents|object|true|none|The documents used to support the identity of a company.|
|» company_verification|object|true|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» bank_verification|object|false|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» financial_verification|object|false|none|Financial statement document becomes mandatory depending on the answer provided for annual_processing_volume. The status of your sub-entity will change to requirements_due stating when this is necessary.|
|»» type|string|true|none|The type of the file.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|Representative Role|ubo|
|Representative Role|legal_representative|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|currency|EUR|
|business_type|general_partnership|
|business_type|limited_partnership|
|business_type|public_limited_company|
|business_type|limited_company|
|business_type|professional_association|
|business_type|unincorporated_association|
|business_type|auto_entrepreneur|
|type|incorporation_document|
|type|bank_statement|
|type|financial_statement|

<h2 id="tocS_EEACompanyFull3-0">EEACompanyFull3-0</h2>
<!-- backwards compatibility -->
<a id="schemaeeacompanyfull3-0"></a>
<a id="schema_EEACompanyFull3-0"></a>
<a id="tocSeeacompanyfull3-0"></a>
<a id="tocseeacompanyfull3-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "EUR"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "GR",
      "number": "string"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "string",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "regulatory_licence_number": "string",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "company_position": "ceo",
        "roles": [
          "ubo"
        ],
        "ownership_percentage": 25,
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          },
          "certified_authorised_signatory": {
            "type": "power_of_attorney",
            "front": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "EUR"
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "articles_of_association": {
      "type": "memorandum_of_association",
      "front": "stringstringstringstringstrings"
    },
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "shareholder_structure": {
      "type": "certified_shareholder_structure",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_legality": {
      "type": "proof_of_legality",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}

```

EEA Company - Full (3.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|true|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|true|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|false|none|Contact details of this sub-entity.|
|» phone|object|false|none|Phone number|
|»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»» number|string|true|none|The phone number without the country calling code|
|» email_addresses|object|false|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|»» message|string|false|none|A more descriptive message.|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|true|none|The sub-entity's Business Registration Number. This can be a Commercial Registration or Ministry of Commerce certificate number, or any other equivalent registration number. For sub-entities based in France, this must be a SIRET number.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» regulatory_licence_number|number|false|none|The regulatory licence number of the company.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[oneOf]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|none|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»»» *anonymous*|object|false|none|Personal information about the individual representing the sub-entity.|
|»»»» id|number|false|none|The representative's id.|
|»»»» individual|object|true|none|Information about the individual representing the sub-entity.|
|»»»»» first_name|string|true|none|The representative's first name.|
|»»»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»»»» last_name|string|true|none|The representative's last name.|
|»»»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»»»» month|integer|true|none|The month of the year they were born.|
|»»»»»» year|integer|true|none|The year they were born.|
|»»»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»»» national_id_number|number|false|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»»»» email_address|any|false|none|The main email address for this sub-entity.|
|»»»»» phone|object|false|none|Phone number|
|»»»»»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»»»»»» number|string|true|none|The phone number without the country calling code|
|»»»»» address|object|true|none|The representative's address.|
|»»»»»» address_line1|string|true|none|The first line of the address.|
|»»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»»» city|string|true|none|The address city.|
|»»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»»» zip|string|true|none|The address zip/postal code.|
|»»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» company_position|string|false|none|The position of the representative within the company.|
|»»»» roles|[string]|true|none|The individual's roles within the company|
|»»»»» Representative Role|string|false|none|The representative's role|
|»»»» ownership_percentage|integer|false|none|The percentage ownership of the UBO or controlling company (required when over 25%)|
|»»»» documents|object|false|none|Verification documents for the individual representative|
|»»»»» identity_verification|object|false|none|The document to use to confirm the individual's identity.|
|»»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»»»» certified_authorised_signatory|object|false|none|Required when the legal representative or other role owner is not registered on certificate of incorporation|
|»»»»»» type|string|true|none|The type of document.|
|»»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»»» *anonymous*|object|false|none|Information about the controlling company|
|»»»» id|number|false|none|The representative's id.|
|»»»» company|object|true|none|none|
|»»»»» legal_name|string|true|none|The legal name of the sub-entity.|
|»»»»» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|»»»»» registered_address|object|true|none|The representative's address.|
|»»»»»» address_line1|string|false|none|The first line of the address.|
|»»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»»» city|string|false|none|The address city.|
|»»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»»» zip|string|false|none|The address zip/postal code.|
|»»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» ownership_percentage|integer|false|none|The percentage ownership of the UBO or controlling company (required when over 25%)|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» business_type|string|true|none|The legal type of the company|
|processing_details|object|true|none|none|
|» settlement_country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2) where the settlement bank account is located|
|» target_countries|[string]|true|none|Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The country code (iso-3166-1 alpha-2)|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|» currency|string|true|none|The currency used for the processing details provided.|
|documents|object|true|none|The documents used to support the verification of company details.|
|» company_verification|object|true|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» articles_of_association|object|true|none|Memorandum or Articles of Association document|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» bank_verification|object|true|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» shareholder_structure|object|true|none|Shareholder structure chart (including % of shares) certified by a competent authority individual and dated within last 3 months|
|»» type|string|true|none|The type of document.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» proof_of_legality|object|false|none|A regulatory licence document required for the company to operate (when applicable)|
|»» type|string|true|none|The type of document used for proof of legality|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» proof_of_principal_address|object|false|none|Proof of principal place of business|
|»» type|string|true|none|The type of document being used as address verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document1|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document2|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document3|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GR|
|country_code|NL|
|country_code|BE|
|country_code|FR|
|country_code|ES|
|country_code|PT|
|country_code|LU|
|country_code|IE|
|country_code|IS|
|country_code|MT|
|country_code|CY|
|country_code|FI|
|country_code|BG|
|country_code|HU|
|country_code|LT|
|country_code|LV|
|country_code|EE|
|country_code|AD|
|country_code|HR|
|country_code|SI|
|country_code|IT|
|country_code|RO|
|country_code|CZ|
|country_code|SK|
|country_code|LI|
|country_code|AT|
|country_code|DK|
|country_code|SE|
|country_code|NO|
|country_code|PL|
|country_code|DE|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|Representative Role|ubo|
|Representative Role|legal_representative|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|EUR|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|bank_statement|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|

<h2 id="tocS_EEACompanyLite2-0">EEACompanyLite2-0</h2>
<!-- backwards compatibility -->
<a id="schemaeeacompanylite2-0"></a>
<a id="schema_EEACompanyLite2-0"></a>
<a id="tocSeeacompanylite2-0"></a>
<a id="tocseeacompanylite2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "string",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "first_name": "string",
        "middle_name": "string",
        "last_name": "string",
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        },
        "date_of_birth": {
          "day": 1,
          "month": 1,
          "year": 1900
        },
        "phone": {
          "number": 10000000
        },
        "address": {
          "address_line1": "string",
          "address_line2": "string",
          "city": "string",
          "state": "string",
          "zip": "string",
          "country": "st"
        },
        "place_of_birth": {
          "country": "st"
        },
        "roles": [
          "ubo"
        ]
      }
    ],
    "financial_details": {
      "annual_processing_volume": 0,
      "average_transaction_value": 0,
      "highest_transaction_value": 0,
      "currency": "EUR"
    },
    "business_type": "general_partnership"
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "financial_verification": {
      "type": "financial_statement",
      "front": "stringstringstringstringstrings"
    }
  }
}

```

EEA Company - Lite (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|company|object|true|none|none|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|false|none|The sub-entity's Business Registration Number. This can be a Commercial Registration or Ministry of Commerce certificate number, or any other equivalent registration number. For sub-entities based in France, this must be a SIRET number.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Information about representatives of this company.|
|»»» id|number|false|none|The representative's id.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»» last_name|string|true|none|The representative's last name.|
|»»» documents|object|false|none|A legal document used to verify identity|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»» date_of_birth|object|false|none|The date of birth of the person according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» phone|object|false|none|The phone number of the sub-entity.|
|»»»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|»»» address|object|true|none|The representative's address.|
|»»»» address_line1|string|false|none|The first line of the address.|
|»»»» address_line2|number|false|none|The second line of the address.|
|»»»» city|string|false|none|The address city.|
|»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»» zip|string|false|none|The address zip/postal code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» place_of_birth|object|false|none|The place of birth of the person.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|false|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's roles within the company|
|» financial_details|object|false|none|Seller financial questions and supporting documents.|
|»» annual_processing_volume|integer|false|none|The estimated annual processing volume. In minor units without decimals.|
|»» average_transaction_value|integer|false|none|The expected average transaction value. In minor units without decimals.|
|»» highest_transaction_value|integer|false|none|The expected highest transaction value. In minor units without decimals.|
|»» currency|string|false|none|The currency used for the processing details provided.|
|» business_type|string|false|none|The legal type of the company|
|documents|object|false|none|The documents used to support the identity of a company.|
|» company_verification|object|false|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» bank_verification|object|false|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» financial_verification|object|false|none|Financial statement document becomes mandatory depending on the answer provided for annual_processing_volume. The status of your sub-entity will change to requirements_due stating when this is necessary.|
|»» type|string|true|none|The type of the file.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|legal_representative|
|currency|EUR|
|business_type|general_partnership|
|business_type|limited_partnership|
|business_type|public_limited_company|
|business_type|limited_company|
|business_type|professional_association|
|business_type|unincorporated_association|
|business_type|auto_entrepreneur|
|type|incorporation_document|
|type|bank_statement|
|type|financial_statement|

<h2 id="tocS_EEASoleTraderFull2-0">EEASoleTraderFull2-0</h2>
<!-- backwards compatibility -->
<a id="schemaeeasoletraderfull2-0"></a>
<a id="schema_EEASoleTraderFull2-0"></a>
<a id="tocSeeasoletraderfull2-0"></a>
<a id="tocseeasoletraderfull2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "EUR"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "individual": {
    "trading_name": "string",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "date_of_birth": {
      "day": 1,
      "month": 1,
      "year": 1900
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "place_of_birth": {
      "country": "st"
    }
  },
  "documents": {
    "identity_verification": {
      "type": "passport",
      "front": "stringstringstringstringstrings",
      "back": "stringstringstringstringstrings"
    }
  }
}

```

EEA Sole Trader - Full (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|false|none|The default holding currency code (iso-4217)|
|» holding_currencies|array|false|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|individual|object|true|none|Information about the individual represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» first_name|string|true|none|The representative's first name.|
|» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|» last_name|string|true|none|The representative's last name.|
|» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»» day|integer|true|none|The calendar day of the month they were born.|
|»» month|integer|true|none|The month of the year they were born.|
|»» year|integer|true|none|The year they were born.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» place_of_birth|object|true|none|The place of birth of the person.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|documents|object|true|none|A legal document used to verify identity.|
|» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»» type|string|true|none|The type of document used for identity verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|

<h2 id="tocS_EEASoleTraderFull3-0">EEASoleTraderFull3-0</h2>
<!-- backwards compatibility -->
<a id="schemaeeasoletraderfull3-0"></a>
<a id="schema_EEASoleTraderFull3-0"></a>
<a id="tocSeeasoletraderfull3-0"></a>
<a id="tocseeasoletraderfull3-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "EUR"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "GR",
      "number": "string"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "trading_name": "string",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "roles": [
          "ubo"
        ],
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          },
          "proof_of_residential_address": {
            "type": "proof_of_address",
            "front": "stringstringstringstringstrings"
          },
          "proof_of_registration": {
            "type": "extract_from_trade_register",
            "front": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "EUR"
  },
  "documents": {
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}

```

EEA Sole Trader - Full (3.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|true|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|true|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|false|none|Phone number|
|»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»» number|string|true|none|The phone number without the country calling code|
|» email_addresses|object|false|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|»» message|string|false|none|A more descriptive message.|
|company|object|true|none|Information about the sole trader's business.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» principal_address|object|true|none|The primary location where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Person of Interest|object|false|none|Personal information about the individual representing the sub-entity.|
|»»» id|number|false|none|The representative's id.|
|»»» individual|object|true|none|Information about the individual representing the sub-entity.|
|»»»» first_name|string|true|none|The representative's first name.|
|»»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»»» last_name|string|true|none|The representative's last name.|
|»»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»»» month|integer|true|none|The month of the year they were born.|
|»»»»» year|integer|true|none|The year they were born.|
|»»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» national_id_number|number|false|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»»» email_address|any|false|none|The representative's personal email address.|
|»»»» phone|object|false|none|Phone number|
|»»»»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»»»»» number|string|true|none|The phone number without the country calling code|
|»»»» address|object|true|none|The representative's address.|
|»»»»» address_line1|string|true|none|The first line of the address.|
|»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»» city|string|true|none|The address city.|
|»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»» zip|string|true|none|The address zip/postal code.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's role|
|»»» documents|object|true|none|Verification documents for the individual representative|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»»» proof_of_residential_address|object|true|none|Proof of residential address of the representative|
|»»»»» type|string|true|none|The type of document being used as address verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»» proof_of_registration|object|true|none|Proof of sole traders registration e.g. extract from a trade register|
|»»»»» type|string|true|none|The type of document being used as proof of registration|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» business_type|string|true|none|The legal type of the company|
|processing_details|object|true|none|none|
|» settlement_country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2) where the settlement bank account is located|
|» target_countries|[string]|true|none|Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The country code (iso-3166-1 alpha-2)|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|» currency|string|true|none|The currency used for the processing details provided.|
|documents|object|true|none|The documents used to support the verification of business details.|
|» bank_verification|object|true|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document1|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document2|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document3|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GR|
|country_code|NL|
|country_code|BE|
|country_code|FR|
|country_code|ES|
|country_code|PT|
|country_code|LU|
|country_code|IE|
|country_code|IS|
|country_code|MT|
|country_code|CY|
|country_code|FI|
|country_code|BG|
|country_code|HU|
|country_code|LT|
|country_code|LV|
|country_code|EE|
|country_code|AD|
|country_code|HR|
|country_code|SI|
|country_code|IT|
|country_code|RO|
|country_code|CZ|
|country_code|SK|
|country_code|LI|
|country_code|AT|
|country_code|DK|
|country_code|SE|
|country_code|NO|
|country_code|PL|
|country_code|DE|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|Representative Role|ubo|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|proof_of_address|
|type|extract_from_trade_register|
|type|other|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|EUR|
|type|bank_statement|

<h2 id="tocS_EEASoleTraderLite2-0">EEASoleTraderLite2-0</h2>
<!-- backwards compatibility -->
<a id="schemaeeasoletraderlite2-0"></a>
<a id="schema_EEASoleTraderLite2-0"></a>
<a id="tocSeeasoletraderlite2-0"></a>
<a id="tocseeasoletraderlite2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "documents": {
    "identity_verification": {
      "type": "passport",
      "front": "stringstringstringstringstrings",
      "back": "stringstringstringstringstrings"
    }
  },
  "individual": {
    "trading_name": "string",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "date_of_birth": {
      "day": 1,
      "month": 1,
      "year": 1900
    },
    "place_of_birth": {
      "country": "st"
    }
  }
}

```

EEA Sole Trader - Lite (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|documents|object|false|none|A legal document used to verify identity.|
|» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»» type|string|true|none|The type of document used for identity verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|individual|object|true|none|Information about the individual represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» first_name|string|true|none|The representative's first name.|
|» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|» last_name|string|true|none|The representative's last name.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»» day|integer|true|none|The calendar day of the month they were born.|
|»» month|integer|true|none|The month of the year they were born.|
|»» year|integer|true|none|The year they were born.|
|» place_of_birth|object|true|none|The place of birth of the person.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|

<h2 id="tocS_EntityBasicResponseV2">EntityBasicResponseV2</h2>
<!-- backwards compatibility -->
<a id="schemaentitybasicresponsev2"></a>
<a id="schema_EntityBasicResponseV2"></a>
<a id="tocSentitybasicresponsev2"></a>
<a id="tocsentitybasicresponsev2"></a>

```json
{
  "id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "reference": "superhero1234",
  "capabilities": {
    "payments": {
      "enabled": false,
      "available": true
    },
    "payouts": {
      "enabled": false,
      "available": true
    },
    "issuing": {
      "enabled": false,
      "available": true
    }
  },
  "requirements_due": [
    {
      "field": "individual.identification.document",
      "reason": "required"
    }
  ]
}

```

Basic response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the entity.|
|reference|string|false|none|A unique reference you can later use to identify this entity.|
|capabilities|[EntityCapabilities](#schemaentitycapabilities)|false|none|none|
|requirements_due|[[EntityRequirementV2](#schemaentityrequirementv2)]|false|none|The requirements still due for this entity to unlock capabilities.|

<h2 id="tocS_EntityBasicResponseV3">EntityBasicResponseV3</h2>
<!-- backwards compatibility -->
<a id="schemaentitybasicresponsev3"></a>
<a id="schema_EntityBasicResponseV3"></a>
<a id="tocSentitybasicresponsev3"></a>
<a id="tocsentitybasicresponsev3"></a>

```json
{
  "id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "reference": "superhero1234",
  "requirements_due": [
    {
      "field": "individual.identification.document",
      "reason": "required",
      "message": "required"
    }
  ]
}

```

Basic response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the entity.|
|reference|string|false|none|A unique reference you can later use to identify this entity.|
|requirements_due|[[EntityRequirementV3](#schemaentityrequirementv3)]|false|none|The requirements still due for this entity to unlock capabilities.|

<h2 id="tocS_EntityBasicResponseWithLinksV2">EntityBasicResponseWithLinksV2</h2>
<!-- backwards compatibility -->
<a id="schemaentitybasicresponsewithlinksv2"></a>
<a id="schema_EntityBasicResponseWithLinksV2"></a>
<a id="tocSentitybasicresponsewithlinksv2"></a>
<a id="tocsentitybasicresponsewithlinksv2"></a>

```json
{
  "id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "reference": "superhero1234",
  "capabilities": {
    "payments": {
      "enabled": false,
      "available": true
    },
    "payouts": {
      "enabled": false,
      "available": true
    },
    "issuing": {
      "enabled": false,
      "available": true
    }
  },
  "requirements_due": [
    {
      "field": "individual.identification.document",
      "reason": "required"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  }
}

```

Company - Platform (2.0)

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[EntityBasicResponseV2](#schemaentitybasicresponsev2)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[EntityLinks](#schemaentitylinks)|false|none|none|

<h2 id="tocS_EntityBasicResponseWithLinksV3">EntityBasicResponseWithLinksV3</h2>
<!-- backwards compatibility -->
<a id="schemaentitybasicresponsewithlinksv3"></a>
<a id="schema_EntityBasicResponseWithLinksV3"></a>
<a id="tocSentitybasicresponsewithlinksv3"></a>
<a id="tocsentitybasicresponsewithlinksv3"></a>

```json
{
  "id": "ent_wxglze3wwywujg4nna5fb7ldli",
  "reference": "superhero1234",
  "requirements_due": [
    {
      "field": "individual.identification.document",
      "reason": "required",
      "message": "required"
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  }
}

```

Company - Platform (3.0)

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[EntityBasicResponseV3](#schemaentitybasicresponsev3)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[EntityLinks](#schemaentitylinks)|false|none|none|

<h2 id="tocS_EntityCapabilities">EntityCapabilities</h2>
<!-- backwards compatibility -->
<a id="schemaentitycapabilities"></a>
<a id="schema_EntityCapabilities"></a>
<a id="tocSentitycapabilities"></a>
<a id="tocsentitycapabilities"></a>

```json
{
  "payments": {
    "enabled": false,
    "available": true
  },
  "payouts": {
    "enabled": false,
    "available": true
  },
  "issuing": {
    "enabled": false,
    "available": true
  }
}

```

Capabilities

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|payments|object|false|none|Payment related capabilities of an entity.|
|» available|boolean|false|none|True if payments are available to the entity.|
|» enabled|boolean|false|none|True if payments are enabled.|
|payouts|object|false|none|Payout related capabilities of an entity.|
|» available|boolean|false|none|True if payouts are available to the entity.|
|» enabled|boolean|false|none|True if payouts are enabled.|
|issuing|object|false|none|Issuing related capabilities of an entity.|
|» available|boolean|false|none|True if issuing is available to the entity.|
|» enabled|boolean|false|none|True if issuing is enabled.|

<h2 id="tocS_EntityLinks">EntityLinks</h2>
<!-- backwards compatibility -->
<a id="schemaentitylinks"></a>
<a id="schema_EntityLinks"></a>
<a id="tocSentitylinks"></a>
<a id="tocsentitylinks"></a>

```json
{
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
    }
  }
}

```

Links

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|_links|object|false|none|none|
|» **additionalProperties**|[Link](#schemalink)|false|none|none|

<h2 id="tocS_EntityRequirementDetails">EntityRequirementDetails</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementdetails"></a>
<a id="schema_EntityRequirementDetails"></a>
<a id="tocSentityrequirementdetails"></a>
<a id="tocsentityrequirementdetails"></a>

```json
{
  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
  "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
  "resource_type": "company",
  "reason": "periodic_review",
  "priority": "high",
  "deadline": "2026-06-01T00:00:00Z",
  "urn": "urn:object:company#ent_wxglze3wwywujg4nna5fb7ldli#field:legal-name",
  "field_path": "company.legal_name",
  "field_urn": "urn:field:companies/legal-name",
  "metadata": {
    "purpose": "company_verification"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
    }
  },
  "message": "Please confirm your legal company name.",
  "_schema": {}
}

```

Requirement details

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[EntityRequirementListItem](#schemaentityrequirementlistitem)|false|none|A pending requirement that the sub-entity must resolve to remain compliant or unlock capabilities.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» message|string|false|none|A user-facing explanation of what is needed to resolve the requirement.|
|» _schema|object¦null|false|none|JSON Schema that the value supplied to `PUT /accounts/entities/{id}/requirements/{requirementId}` must conform to. The shape varies by requirement type (for example: an identity document upload, a free-text response, or a structured object). Validate the value client-side against this schema before submitting. May be `null` if no schema is registered for the requirement's field.|

<h2 id="tocS_EntityRequirementListItem">EntityRequirementListItem</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementlistitem"></a>
<a id="schema_EntityRequirementListItem"></a>
<a id="tocSentityrequirementlistitem"></a>
<a id="tocsentityrequirementlistitem"></a>

```json
{
  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
  "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
  "resource_type": "company",
  "reason": "periodic_review",
  "priority": "high",
  "deadline": "2026-06-01T00:00:00Z",
  "urn": "urn:object:company#ent_wxglze3wwywujg4nna5fb7ldli#field:legal-name",
  "field_path": "company.legal_name",
  "field_urn": "urn:field:companies/legal-name",
  "metadata": {
    "purpose": "company_verification"
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
    }
  }
}

```

Requirement summary

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the requirement.|
|resource|string|false|none|The ID of the resource (sub-entity or representative) the requirement applies to.|
|resource_type|string|false|none|The type of resource the requirement applies to derived from the resource's URN. Common values include `company`, `individual`, and `representative`. Defaults to `entity` if the URN cannot be parsed.|
|reason|string|false|none|The reason the requirement was raised.|
|priority|string|false|none|Priority level of this requirement. "high" by default, "critical" if deadline is within 7 days.|
|deadline|string(date-time)|false|none|The date and time, in ISO 8601 UTC format, by which the requirement must be resolved.|
|urn|string|false|none|The schema-registry URN identifying the field this requirement applies to. Format: `urn:object:{resource_type}#{resource_id}#field:{field_name}`.|
|field_path|string¦null|false|none|Dot-notation path of the field on the resource that needs to be supplied or updated. May be `null` for ad-hoc requirements (such as additional documents or free-text responses) that do not map to a specific field on the entity.|
|field_urn|string¦null|false|none|The schema-registry URN of the field, from the public mapping definition. May be `null` if no mapping exists.|
|metadata|object¦null|false|none|Optional metadata from the property mapping definition. Shape varies by requirement.|
|_links|object|false|none|Links to related resources.|
|» **additionalProperties**|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|reason|periodic_review|
|reason|attestation|
|priority|high|
|priority|critical|

<h2 id="tocS_EntityRequirementListResponse">EntityRequirementListResponse</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementlistresponse"></a>
<a id="schema_EntityRequirementListResponse"></a>
<a id="tocSentityrequirementlistresponse"></a>
<a id="tocsentityrequirementlistresponse"></a>

```json
{
  "data": [
    {
      "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
      "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
      "resource_type": "company",
      "reason": "periodic_review",
      "priority": "high",
      "deadline": "2026-06-01T00:00:00Z",
      "urn": "urn:object:company#ent_wxglze3wwywujg4nna5fb7ldli#field:legal-name",
      "field_path": "company.legal_name",
      "field_urn": "urn:field:companies/legal-name",
      "metadata": {
        "purpose": "company_verification"
      },
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
        }
      }
    }
  ]
}

```

Requirements list

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[[EntityRequirementListItem](#schemaentityrequirementlistitem)]|false|none|The list of pending requirements for the sub-entity. Empty when no requirements are outstanding.|

<h2 id="tocS_EntityRequirementUpdateRequest">EntityRequirementUpdateRequest</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementupdaterequest"></a>
<a id="schema_EntityRequirementUpdateRequest"></a>
<a id="tocSentityrequirementupdaterequest"></a>
<a id="tocsentityrequirementupdaterequest"></a>

```json
{
  "value": {
    "file_id": "file_6lbss42ezvoufcb2beo76rvwly"
  }
}

```

Resolve requirement request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|value|any|true|none|The response to the requirement. The expected shape depends on the requirement and is defined by the JSON Schema returned in the requirement details response. Common shapes include a file reference (for document uploads), a primitive value, or a structured object.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|object|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[any]|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|number|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|boolean|false|none|none|

<h2 id="tocS_EntityRequirementUpdateResponse">EntityRequirementUpdateResponse</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementupdateresponse"></a>
<a id="schema_EntityRequirementUpdateResponse"></a>
<a id="tocSentityrequirementupdateresponse"></a>
<a id="tocsentityrequirementupdateresponse"></a>

```json
{
  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
  "status": "processing",
  "submitted_at": "2026-05-05T10:15:30Z",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
    },
    "collection": {
      "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements"
    }
  }
}

```

Resolve requirement response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the requirement.|
|status|string|false|none|Processing status of the submitted response. While the response is processing, the requirement is no longer retrievable via the GET endpoints; if validation fails downstream the requirement may reappear.|
|submitted_at|string(date-time)|false|none|The date and time, in ISO 8601 UTC format, the response was accepted.|
|_links|object|false|none|none|
|» **additionalProperties**|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|status|processing|

<h2 id="tocS_EntityRequirementV2">EntityRequirementV2</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementv2"></a>
<a id="schema_EntityRequirementV2"></a>
<a id="tocSentityrequirementv2"></a>
<a id="tocsentityrequirementv2"></a>

```json
{
  "field": "individual.identification.document",
  "reason": "required"
}

```

Requirement

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|field|string|false|none|The name of the field required.|
|reason|string|false|none|The reason the field is required.|

<h2 id="tocS_EntityRequirementV3">EntityRequirementV3</h2>
<!-- backwards compatibility -->
<a id="schemaentityrequirementv3"></a>
<a id="schema_EntityRequirementV3"></a>
<a id="tocSentityrequirementv3"></a>
<a id="tocsentityrequirementv3"></a>

```json
{
  "field": "individual.identification.document",
  "reason": "required",
  "message": "required"
}

```

Requirement

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|field|string|false|none|The name of the field required.|
|reason|string|false|none|The reason the field is required.|
|message|string|false|none|An additional text field for requirement reasoning.|

<h2 id="tocS_GBCompanyFull2-0">GBCompanyFull2-0</h2>
<!-- backwards compatibility -->
<a id="schemagbcompanyfull2-0"></a>
<a id="schema_GBCompanyFull2-0"></a>
<a id="tocSgbcompanyfull2-0"></a>
<a id="tocsgbcompanyfull2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "GBP"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringst",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "first_name": "string",
        "middle_name": "string",
        "last_name": "string",
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        },
        "date_of_birth": {
          "day": 1,
          "month": 1,
          "year": 1900
        },
        "phone": {
          "number": 10000000
        },
        "address": {
          "address_line1": "string",
          "address_line2": "string",
          "city": "string",
          "state": "string",
          "zip": "string",
          "country": "st"
        },
        "roles": [
          "ubo"
        ]
      }
    ],
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    }
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    }
  }
}

```

GB Company - Full (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|false|none|The default holding currency code (iso-4217)|
|» holding_currencies|array|false|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|true|none|The sub-entity's Business Registration Number. This can be a Commercial Registration or Ministry of Commerce certificate number, or any other equivalent registration number.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Information about representatives of this company.|
|»»» id|number|false|none|The representative's id.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»» last_name|string|true|none|The representative's last name.|
|»»» documents|object|false|none|A legal document used to verify identity|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» phone|object|false|none|The phone number of the sub-entity.|
|»»»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|»»» address|object|true|none|The representative's address.|
|»»»» address_line1|string|false|none|The first line of the address.|
|»»»» address_line2|number|false|none|The second line of the address.|
|»»»» city|string|false|none|The address city.|
|»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»» zip|string|false|none|The address zip/postal code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's roles within the company|
|» date_of_incorporation|object|false|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|documents|object|false|none|The documents used to support the verification of company details.|
|» company_verification|object|true|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|type|incorporation_document|

<h2 id="tocS_GBCompanyFull3-0">GBCompanyFull3-0</h2>
<!-- backwards compatibility -->
<a id="schemagbcompanyfull3-0"></a>
<a id="schema_GBCompanyFull3-0"></a>
<a id="tocSgbcompanyfull3-0"></a>
<a id="tocsgbcompanyfull3-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "GBP"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "GI",
      "number": "strings"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringst",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "company_position": "ceo",
        "roles": [
          "ubo"
        ],
        "ownership_percentage": 25,
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          },
          "certified_authorised_signatory": {
            "type": "power_of_attorney",
            "front": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "GBP"
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "articles_of_association": {
      "type": "memorandum_of_association",
      "front": "stringstringstringstringstrings"
    },
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "shareholder_structure": {
      "type": "certified_shareholder_structure",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_legality": {
      "type": "proof_of_legality",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}

```

GB Company - Full (3.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|true|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|true|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|false|none|Phone number|
|»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»» number|string|true|none|The phone number without the country calling code|
|» email_addresses|object|false|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|»» message|string|false|none|A more descriptive message.|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|true|none|The sub-entity's Business Registration Number. This can be a Commercial Registration or Ministry of Commerce certificate number, or any other equivalent registration number.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[oneOf]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|none|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»»» *anonymous*|object|false|none|Personal information about the individual representing the sub-entity.|
|»»»» id|number|false|none|The representative's id.|
|»»»» individual|object|true|none|Information about the individual representing the sub-entity.|
|»»»»» first_name|string|true|none|The representative's first name.|
|»»»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»»»» last_name|string|true|none|The representative's last name.|
|»»»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»»»» month|integer|true|none|The month of the year they were born.|
|»»»»»» year|integer|true|none|The year they were born.|
|»»»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»»» national_id_number|number|false|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»»»» email_address|any|false|none|The main email address for this sub-entity.|
|»»»»» phone|object|false|none|Phone number|
|»»»»»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»»»»»» number|string|true|none|The phone number without the country calling code|
|»»»»» address|object|true|none|The representative's address.|
|»»»»»» address_line1|string|true|none|The first line of the address.|
|»»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»»» city|string|true|none|The address city.|
|»»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»»» zip|string|true|none|The address zip/postal code.|
|»»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» company_position|string|false|none|The position of the representative within the company.|
|»»»» roles|[string]|true|none|The individual's roles within the company|
|»»»»» Representative Role|string|false|none|The representative's role|
|»»»» ownership_percentage|integer|false|none|The percentage ownership of the UBO or controlling company (required when over 25%)|
|»»»» documents|object|false|none|Verification documents for the individual representative|
|»»»»» identity_verification|object|false|none|The document to use to confirm the individual's identity.|
|»»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»»»» certified_authorised_signatory|object|false|none|Required when the legal representative or other role owner is not registered on certificate of incorporation|
|»»»»»» type|string|true|none|The type of document.|
|»»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»»» *anonymous*|object|false|none|Information about the controlling company|
|»»»» id|number|false|none|The representative's id.|
|»»»» company|object|true|none|none|
|»»»»» legal_name|string|true|none|The legal name of the sub-entity.|
|»»»»» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|»»»»» registered_address|object|true|none|The representative's address.|
|»»»»»» address_line1|string|false|none|The first line of the address.|
|»»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»»» city|string|false|none|The address city.|
|»»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»»» zip|string|false|none|The address zip/postal code.|
|»»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» ownership_percentage|integer|false|none|The percentage ownership of the UBO or controlling company (required when over 25%)|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» business_type|string|true|none|The legal type of the company|
|processing_details|object|true|none|Seller processing details.|
|» settlement_country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2) where the settlement bank account is located|
|» target_countries|[string]|true|none|Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The country code (iso-3166-1 alpha-2)|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|» currency|string|true|none|The currency used for the processing details provided.|
|documents|object|true|none|The documents used to support the verification of company details.|
|» company_verification|object|false|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» articles_of_association|object|true|none|Memorandum or Articles of Association document|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» bank_verification|object|false|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» shareholder_structure|object|true|none|Shareholder structure chart (including % of shares) certified by a competent authority individual and dated within last 3 months|
|»» type|string|true|none|The type of document.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» proof_of_legality|object|false|none|A regulatory licence document required for the company to operate (when applicable)|
|»» type|string|true|none|The type of document used for proof of legality|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» proof_of_principal_address|object|false|none|Proof of principal place of business|
|»» type|string|true|none|The type of document being used as address verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document1|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document2|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document3|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GI|
|country_code|CH|
|country_code|GG|
|country_code|IM|
|country_code|JE|
|country_code|GB|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|SX|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|director|
|Representative Role|control_person|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|scottish_limited_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|GBP|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|bank_statement|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|

<h2 id="tocS_GBCompanyLite2-0">GBCompanyLite2-0</h2>
<!-- backwards compatibility -->
<a id="schemagbcompanylite2-0"></a>
<a id="schema_GBCompanyLite2-0"></a>
<a id="tocSgbcompanylite2-0"></a>
<a id="tocsgbcompanylite2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringst",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "first_name": "string",
        "middle_name": "string",
        "last_name": "string",
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        },
        "date_of_birth": {
          "day": 1,
          "month": 1,
          "year": 1900
        },
        "phone": {
          "number": 10000000
        },
        "address": {
          "address_line1": "string",
          "address_line2": "string",
          "city": "string",
          "state": "string",
          "zip": "string",
          "country": "st"
        },
        "roles": [
          "ubo"
        ]
      }
    ]
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    }
  }
}

```

GB Company - Lite (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|company|object|true|none|none|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|false|none|The sub-entity's Business Registration Number. This can be a Commercial Registration or Ministry of Commerce certificate number, or any other equivalent registration number.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Information about representatives of this company.|
|»»» id|number|false|none|The representative's id.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»» last_name|string|true|none|The representative's last name.|
|»»» documents|object|false|none|A legal document used to verify identity|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»» date_of_birth|object|false|none|The date of birth of the person according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» phone|object|false|none|The phone number of the sub-entity.|
|»»»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|»»» address|object|true|none|The representative's address.|
|»»»» address_line1|string|false|none|The first line of the address.|
|»»»» address_line2|number|false|none|The second line of the address.|
|»»»» city|string|false|none|The address city.|
|»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»» zip|string|false|none|The address zip/postal code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's roles within the company|
|documents|object|false|none|none|
|» company_verification|object|false|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|type|incorporation_document|

<h2 id="tocS_GBSoleTraderFull2-0">GBSoleTraderFull2-0</h2>
<!-- backwards compatibility -->
<a id="schemagbsoletraderfull2-0"></a>
<a id="schema_GBSoleTraderFull2-0"></a>
<a id="tocSgbsoletraderfull2-0"></a>
<a id="tocsgbsoletraderfull2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "GBP"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "individual": {
    "trading_name": "string",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "date_of_birth": {
      "day": 1,
      "month": 1,
      "year": 1900
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    }
  },
  "documents": {
    "identity_verification": {
      "type": "passport",
      "front": "stringstringstringstringstrings",
      "back": "stringstringstringstringstrings"
    }
  }
}

```

GB Sole Trader - Full (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|false|none|The default holding currency code (iso-4217)|
|» holding_currencies|array|false|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|individual|object|true|none|Information about the individual represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» first_name|string|true|none|The representative's first name.|
|» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|» last_name|string|true|none|The representative's last name.|
|» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»» day|integer|true|none|The calendar day of the month they were born.|
|»» month|integer|true|none|The month of the year they were born.|
|»» year|integer|true|none|The year they were born.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|documents|object|false|none|A legal document used to verify identity.|
|» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»» type|string|true|none|The type of document used for identity verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|

<h2 id="tocS_GBSoleTraderFull3-0">GBSoleTraderFull3-0</h2>
<!-- backwards compatibility -->
<a id="schemagbsoletraderfull3-0"></a>
<a id="schema_GBSoleTraderFull3-0"></a>
<a id="tocSgbsoletraderfull3-0"></a>
<a id="tocsgbsoletraderfull3-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "GBP"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "GI",
      "number": "strings"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "trading_name": "string",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "roles": [
          "ubo"
        ],
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "GBP"
  },
  "documents": {
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}

```

GB Sole Trader - Full (3.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|true|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|true|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|false|none|Phone number|
|»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»» number|string|true|none|The phone number without the country calling code|
|» email_addresses|object|false|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|»» message|string|false|none|A more descriptive message.|
|company|object|true|none|Information about the sole trader's business.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» principal_address|object|true|none|The primary location where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Person of Interest|object|false|none|Personal information about the individual representing the sub-entity.|
|»»» id|number|false|none|The representative's id.|
|»»» individual|object|true|none|Information about the individual representing the sub-entity.|
|»»»» first_name|string|true|none|The representative's first name.|
|»»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»»» last_name|string|true|none|The representative's last name.|
|»»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»»» month|integer|true|none|The month of the year they were born.|
|»»»»» year|integer|true|none|The year they were born.|
|»»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» national_id_number|number|false|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»»» email_address|any|false|none|The representative's personal email address.|
|»»»» phone|object|false|none|Phone number|
|»»»»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»»»»» number|string|true|none|The phone number without the country calling code|
|»»»» address|object|true|none|The representative's address.|
|»»»»» address_line1|string|true|none|The first line of the address.|
|»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»» city|string|true|none|The address city.|
|»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»» zip|string|true|none|The address zip/postal code.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's role|
|»»» documents|object|true|none|Verification documents for the individual representative|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|» business_type|string|true|none|The legal type of the company|
|processing_details|object|true|none|Seller processing details.|
|» settlement_country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2) where the settlement bank account is located|
|» target_countries|[string]|true|none|Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The country code (iso-3166-1 alpha-2)|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|» currency|string|true|none|The currency used for the processing details provided.|
|documents|object|true|none|The documents used to support the verification of business details.|
|» bank_verification|object|true|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document1|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document2|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document3|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|AED|
|Currency|AUD|
|Currency|CAD|
|Currency|CHF|
|Currency|CZK|
|Currency|DKK|
|Currency|EUR|
|Currency|GBP|
|Currency|HKD|
|Currency|JPY|
|Currency|KWD|
|Currency|NOK|
|Currency|NZD|
|Currency|PLN|
|Currency|RON|
|Currency|SEK|
|Currency|SGD|
|Currency|USD|
|Currency|ZAR|
|country_code|GI|
|country_code|CH|
|country_code|GG|
|country_code|IM|
|country_code|JE|
|country_code|GB|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|Representative Role|ubo|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_company|
|business_type|public_limited_company|
|business_type|limited_partnership|
|business_type|general_partnership|
|business_type|scottish_limited_partnership|
|business_type|government_agency|
|business_type|non_profit_entity|
|business_type|trust|
|business_type|club_or_society|
|business_type|unincorporated_association|
|currency|GBP|
|type|bank_statement|

<h2 id="tocS_GBSoleTraderLite2-0">GBSoleTraderLite2-0</h2>
<!-- backwards compatibility -->
<a id="schemagbsoletraderlite2-0"></a>
<a id="schema_GBSoleTraderLite2-0"></a>
<a id="tocSgbsoletraderlite2-0"></a>
<a id="tocsgbsoletraderlite2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 10000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "documents": {
    "identity_verification": {
      "type": "passport",
      "front": "stringstringstringstringstrings",
      "back": "stringstringstringstringstrings"
    }
  },
  "individual": {
    "trading_name": "string",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "date_of_birth": {
      "day": 1,
      "month": 1,
      "year": 1900
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    }
  }
}

```

GB Sole Trader - Lite (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|The phone number of the sub-entity.|
|»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|documents|object|false|none|A legal document used to verify identity.|
|» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»» type|string|true|none|The type of document used for identity verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|individual|object|true|none|Information about the individual represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» first_name|string|true|none|The representative's first name.|
|» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|» last_name|string|true|none|The representative's last name.|
|» date_of_birth|object|false|none|The date of birth of the person according to the Gregorian calendar.|
|»» day|integer|true|none|The calendar day of the month they were born.|
|»» month|integer|true|none|The month of the year they were born.|
|»» year|integer|true|none|The year they were born.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|

<h2 id="tocS_GetScheduleResponse">GetScheduleResponse</h2>
<!-- backwards compatibility -->
<a id="schemagetscheduleresponse"></a>
<a id="schema_GetScheduleResponse"></a>
<a id="tocSgetscheduleresponse"></a>
<a id="tocsgetscheduleresponse"></a>

```json
{
  "GBP": {
    "recurrence": {
      "enabled": true,
      "threshold": 100,
      "payment_instrument_id": "ppi_w4jelhppmfiufdnatam37wrfc4",
      "schedule": {
        "frequency": "weekly",
        "by_day": [
          "monday"
        ]
      }
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
      }
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|GBP|object(ISO 4217)|false|none|The three-letter ISO currency code of the account's currency.|
|» recurrence|object|false|none|Information about how often the schedule takes place.|
|»» enabled|boolean|false|none|Indicates the status of the payout schedule.|
|»» threshold|number|false|none|Minimum available balance on the account to do a payout. If the balance is less than the threshold, then the payout instruction will not send.|
|»» payment_instrument_id|string|false|none|The ID of the platforms payment instrument used for payouts on this schedule.|
|»» schedule|object|false|none|Details about the payout schedule. Required if `enabled` is set to `true`.|
|»»» frequency|string|true|none|Used to indicate how often funds should be paid out to a sub-entity.|
|» _links|object|false|none|none|
|»» **additionalProperties**|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|frequency|weekly|
|frequency|daily|
|frequency|monthly|

<h2 id="tocS_GetScheduleResponseIsv">GetScheduleResponseIsv</h2>
<!-- backwards compatibility -->
<a id="schemagetscheduleresponseisv"></a>
<a id="schema_GetScheduleResponseIsv"></a>
<a id="tocSgetscheduleresponseisv"></a>
<a id="tocsgetscheduleresponseisv"></a>

```json
{
  "GBP": {
    "recurrence": {
      "enabled": true,
      "threshold": 100,
      "balance_minimum": 500,
      "carry_forward_enabled": true,
      "payment_instrument_id": "ppi_w4jelhppmfiufdnatam37wrfc4",
      "schedule": {
        "frequency": "weekly",
        "by_day": [
          "monday"
        ]
      }
    },
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
      }
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|GBP|object(ISO 4217)|false|none|The three-letter ISO currency code of the account's currency.|
|» recurrence|object|false|none|Information about how often the payout takes place.|
|»» enabled|boolean|false|none|Indicates whether the payout schedule is enabled.|
|»» threshold|number|false|none|The minimum balance, in the minor units of the schedule's currency, required for a payout to take place. If the sub-entity's available balance is below the `threshold`, Checkout.com does not send the payout instruction. Defaults to `0` if you do not set it.|
|»» balance_minimum|number¦null|false|none|The amount, in the minor units of the schedule's currency, to retain in the sub-entity's available balance. Checkout.com pays out only the funds above the `balance_minimum`, and generates no payout if there are none. Defaults to `0` if you do not set it.|
|»» carry_forward_enabled|boolean¦null|false|none|Indicates whether to carry forward any balance below the configured minimum to the next payout. Always returned for SaaS sellers, and defaults to `false` if you do not set it.|
|»» payment_instrument_id|string|false|none|The ID of the platforms payment instrument used for payouts on this schedule.|
|»» schedule|object|false|none|Details about the payout schedule. Required if `enabled` is set to `true`.|
|»»» frequency|string|true|none|Used to indicate how often funds should be paid out to a sub-entity.|
|» _links|object|false|none|none|
|»» **additionalProperties**|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|frequency|weekly|
|frequency|daily|
|frequency|monthly|

<h2 id="tocS_PlatformsHostedOnboardGetMembers">PlatformsHostedOnboardGetMembers</h2>
<!-- backwards compatibility -->
<a id="schemaplatformshostedonboardgetmembers"></a>
<a id="schema_PlatformsHostedOnboardGetMembers"></a>
<a id="tocSplatformshostedonboardgetmembers"></a>
<a id="tocsplatformshostedonboardgetmembers"></a>

```json
{
  "data": [
    {
      "user_id": "usr_eyk754cqieqexfh6u46no5nnha"
    }
  ],
  "links": {
    "_links": {
      "self": {
        "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
      }
    }
  }
}

```

Sub-entity members response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[object]|false|none|The list of members of the sub-entity.|
|» Members|object|false|none|none|
|»» user_id|string|false|none|The unique ID used to identify a sub-entity member.|
|links|[EntityLinks](#schemaentitylinks)|false|none|none|

<h2 id="tocS_PlatformsHostedOnboardInviteRequest">PlatformsHostedOnboardInviteRequest</h2>
<!-- backwards compatibility -->
<a id="schemaplatformshostedonboardinviterequest"></a>
<a id="schema_PlatformsHostedOnboardInviteRequest"></a>
<a id="tocSplatformshostedonboardinviterequest"></a>
<a id="tocsplatformshostedonboardinviterequest"></a>

```json
{
  "reference": "superhero1234",
  "is_draft": true,
  "contact_details": {
    "invitee": {
      "email": "admin@superhero1234.com"
    }
  }
}

```

Hosted Onboarding Invitation Request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|is_draft|boolean|true|none|Specifies whether the sub-entity details are in draft. <br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|contact_details|object|true|none|The contact details of the members invited to onboard the sub-entity|
|» invitee|object|true|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|string(email)|true|none|The email of the user responsible for onboarding the sub-entity.|

<h2 id="tocS_PlatformsHostedOnboardReinviteRequest">PlatformsHostedOnboardReinviteRequest</h2>
<!-- backwards compatibility -->
<a id="schemaplatformshostedonboardreinviterequest"></a>
<a id="schema_PlatformsHostedOnboardReinviteRequest"></a>
<a id="tocSplatformshostedonboardreinviterequest"></a>
<a id="tocsplatformshostedonboardreinviterequest"></a>

```json
{}

```

Reinvite sub-entity member

### Properties

*None*

<h2 id="tocS_PlatformsHostedOnboardReinviteResponse">PlatformsHostedOnboardReinviteResponse</h2>
<!-- backwards compatibility -->
<a id="schemaplatformshostedonboardreinviteresponse"></a>
<a id="schema_PlatformsHostedOnboardReinviteResponse"></a>
<a id="tocSplatformshostedonboardreinviteresponse"></a>
<a id="tocsplatformshostedonboardreinviteresponse"></a>

```json
{}

```

Reinvite sub-entity member

### Properties

*None*

<h2 id="tocS_PlatformsInstrumentDetailsAch">PlatformsInstrumentDetailsAch</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsinstrumentdetailsach"></a>
<a id="schema_PlatformsInstrumentDetailsAch"></a>
<a id="tocSplatformsinstrumentdetailsach"></a>
<a id="tocsplatformsinstrumentdetailsach"></a>

```json
{
  "account_number": "12345100",
  "routing_number": "026009593",
  "account_type": "savings"
}

```

InstrumentDetailsAch

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_number|string|true|none|The alphanumeric value that identifies the account.|
|routing_number|string|true|none|The 9-digit American Bankers Association (ABA) routing number that identifies the financial institution.|
|account_type|string|true|none|The type of bank account.|

#### Enumerated Values

|Property|Value|
|---|---|
|account_type|savings|
|account_type|checking|

<h2 id="tocS_PlatformsInstrumentDetailsFasterPayments">PlatformsInstrumentDetailsFasterPayments</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsinstrumentdetailsfasterpayments"></a>
<a id="schema_PlatformsInstrumentDetailsFasterPayments"></a>
<a id="tocSplatformsinstrumentdetailsfasterpayments"></a>
<a id="tocsplatformsinstrumentdetailsfasterpayments"></a>

```json
{
  "account_number": "13654567455",
  "bank_code": "123-456"
}

```

InstrumentDetailsFasterPayments

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_number|string|true|none|The alphanumeric value that identifies the account|
|bank_code|string|true|none|The code that identifies the bank|

<h2 id="tocS_PlatformsInstrumentDetailsSepa">PlatformsInstrumentDetailsSepa</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsinstrumentdetailssepa"></a>
<a id="schema_PlatformsInstrumentDetailsSepa"></a>
<a id="tocSplatformsinstrumentdetailssepa"></a>
<a id="tocsplatformsinstrumentdetailssepa"></a>

```json
{
  "iban": "HU93116000060000000012345676",
  "swift_bic": "37040044"
}

```

InstrumentDetailsSepa

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|iban|string|true|none|The account's International Bank Account Number (IBAN)|
|swift_bic|string(ISO 9362:2009)|true|none|An 8 or 11 character code that identifies the bank or bank branch|

<h2 id="tocS_PlatformsPaymentInstrumentBankAccount">PlatformsPaymentInstrumentBankAccount</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrumentbankaccount"></a>
<a id="schema_PlatformsPaymentInstrumentBankAccount"></a>
<a id="tocSplatformspaymentinstrumentbankaccount"></a>
<a id="tocsplatformspaymentinstrumentbankaccount"></a>

```json
{
  "label": "Peter's Personal Account",
  "type": "bank_account",
  "currency": "GBP",
  "country": "GB",
  "default": true,
  "document": {
    "type": "bank_statement",
    "file_id": "file_wxglze3wwywujg4nna5fb7ldli"
  },
  "instrument_details": {
    "account_number": "13654567455",
    "bank_code": "123-456"
  }
}

```

PaymentInstrumentBankAccount

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PlatformsPaymentInstrument](#schemaplatformspaymentinstrument)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» country|string(ISO 3166-1)|true|none|The account's country, as a two-letter ISO country code|
|» default|boolean|false|none|For ad-hoc payouts, the payment instrument is explicitly specified in the payout request.<br>For scheduled payouts, the first payment instrument created for a given currency will be used for that currency's payout schedule.<br>To change the payment instrument associated with a payout schedule, update the payout schedule.<br>(Deprecated) Specifies whether the payment instrument should be set as the default payout destination.|
|» document|object|true|none|A legal document used to verify the bank account|
|»» type|string|false|none|The document type|
|»» file_id|string|false|none|The file ID of the uploaded document. The document must have been uploaded for the purpose of `"bank_verification"`.|
|» instrument_details|any|true|none|Details of the payment instrument being created.|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[PlatformsInstrumentDetailsFasterPayments](#schemaplatformsinstrumentdetailsfasterpayments)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[PlatformsInstrumentDetailsSepa](#schemaplatformsinstrumentdetailssepa)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|»» *anonymous*|[PlatformsInstrumentDetailsAch](#schemaplatformsinstrumentdetailsach)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bank_statement|

<h2 id="tocS_PlatformsInstrumentDetailsCardToken">PlatformsInstrumentDetailsCardToken</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsinstrumentdetailscardtoken"></a>
<a id="schema_PlatformsInstrumentDetailsCardToken"></a>
<a id="tocSplatformsinstrumentdetailscardtoken"></a>
<a id="tocsplatformsinstrumentdetailscardtoken"></a>

```json
{
  "label": "Peter's Personal Account",
  "type": "bank_account",
  "currency": "GBP",
  "instrument_details": {
    "token": "tok_4gzeau5o2uqubbk6fufs3m7p54"
  }
}

```

card_token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|card_token|any|false|none|Card Token Request|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PlatformsPaymentInstrument](#schemaplatformspaymentinstrument)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» instrument_details|object|true|none|Details of the payment instrument being created|
|»» token|string|false|none|The token that identifies the card|

<h2 id="tocS_PlatformsPaymentInstrument">PlatformsPaymentInstrument</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrument"></a>
<a id="schema_PlatformsPaymentInstrument"></a>
<a id="tocSplatformspaymentinstrument"></a>
<a id="tocsplatformspaymentinstrument"></a>

```json
{
  "label": "Peter's Personal Account",
  "type": "bank_account",
  "currency": "GBP"
}

```

PaymentInstrumentBase

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|label|string|true|none|A reference that you can use to identify the payment instrument|
|type|string|true|none|The instrument type|
|currency|string(ISO 4217)|true|none|The account's currency, as a 3-letter ISO currency code|

#### Enumerated Values

|Property|Value|
|---|---|
|type|bank_account|
|type|card_token|

<h2 id="tocS_PlatformsPaymentInstrumentCreate">PlatformsPaymentInstrumentCreate</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrumentcreate"></a>
<a id="schema_PlatformsPaymentInstrumentCreate"></a>
<a id="tocSplatformspaymentinstrumentcreate"></a>
<a id="tocsplatformspaymentinstrumentcreate"></a>

```json
{
  "type": "bank_account",
  "label": "Peter's Personal Account",
  "currency": "GBP",
  "instrument_details": {}
}

```

PaymentInstrumentCreateRequest

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of instrument|
|label|string|true|none|A reference that you can use to identify the payment instrument|
|currency|string|true|none|The three-letter <a href="https://www.checkout.com/docs/resources/codes/currency-codes" target="blank">ISO currency code</a> of the account's currency.|
|instrument_details|object|true|none|Details of the payment instrument being created|

<h2 id="tocS_PlatformsPaymentInstrumentQuery">PlatformsPaymentInstrumentQuery</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrumentquery"></a>
<a id="schema_PlatformsPaymentInstrumentQuery"></a>
<a id="tocSplatformspaymentinstrumentquery"></a>
<a id="tocsplatformspaymentinstrumentquery"></a>

```json
{
  "data": [
    {
      "id": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga",
      "status": "verified",
      "instrument_id": "src_wmlfc3zyhqzehihu7giusaaawu",
      "label": "Peter's Personal Account",
      "type": "bank_account",
      "currency": "GBP",
      "_links": {
        "property1": {
          "href": "string"
        },
        "property2": {
          "href": "string"
        }
      }
    }
  ],
  "_links": {
    "property1": {
      "href": "string"
    },
    "property2": {
      "href": "string"
    }
  }
}

```

PaymentInstrumentQueryResponse

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[[PlatformsPaymentInstrumentRead](#schemaplatformspaymentinstrumentread)]|false|none|none|
|_links|object|false|none|none|
|» **additionalProperties**|[Link](#schemalink)|false|none|none|

<h2 id="tocS_PlatformsPaymentInstrumentRead">PlatformsPaymentInstrumentRead</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrumentread"></a>
<a id="schema_PlatformsPaymentInstrumentRead"></a>
<a id="tocSplatformspaymentinstrumentread"></a>
<a id="tocsplatformspaymentinstrumentread"></a>

```json
{
  "id": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga",
  "status": "verified",
  "instrument_id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "label": "Peter's Personal Account",
  "type": "bank_account",
  "currency": "GBP",
  "_links": {
    "property1": {
      "href": "string"
    },
    "property2": {
      "href": "string"
    }
  }
}

```

PaymentInstrumentReadResponse

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» id|string|false|none|The ID of the sub-entity's payment instrument.|
|» status|[PlatformsPaymentInstrumentStatus](#schemaplatformspaymentinstrumentstatus)|false|none|The status of your sub-entity's payment instrument. The status indicates the instrument's stage of verification, and whether it can be used for payouts.|
|» instrument_id|string|false|none|The payment instrument's ID. Only available once the instrument status is `verified`.|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PlatformsPaymentInstrument](#schemaplatformspaymentinstrument)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» _links|object|false|none|none|
|»» **additionalProperties**|[Link](#schemalink)|false|none|none|

<h2 id="tocS_PlatformsPaymentInstrumentStatus">PlatformsPaymentInstrumentStatus</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrumentstatus"></a>
<a id="schema_PlatformsPaymentInstrumentStatus"></a>
<a id="tocSplatformspaymentinstrumentstatus"></a>
<a id="tocsplatformspaymentinstrumentstatus"></a>

```json
"verified"

```

Status

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Status|string|false|none|The status of your sub-entity's payment instrument. The status indicates the instrument's stage of verification, and whether it can be used for payouts.|

#### Enumerated Values

|Property|Value|
|---|---|
|Status|pending|
|Status|verified|
|Status|unverified|

<h2 id="tocS_PlatformsPaymentInstrumentUpdate">PlatformsPaymentInstrumentUpdate</h2>
<!-- backwards compatibility -->
<a id="schemaplatformspaymentinstrumentupdate"></a>
<a id="schema_PlatformsPaymentInstrumentUpdate"></a>
<a id="tocSplatformspaymentinstrumentupdate"></a>
<a id="tocsplatformspaymentinstrumentupdate"></a>

```json
{
  "label": "Peter's Personal Account",
  "default": true,
  "headers": {
    "if-match": "Y3Y9MCZydj0w"
  }
}

```

PaymentInstrumentUpdateRequest

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|label|string|false|none|A reference that you can use to identify the payment instrument.|
|default|boolean|false|none|For ad-hoc payouts, the payment instrument is explicitly specified in the payout request.<br>For scheduled payouts, the first payment instrument created for a given currency will be used for that currency's payout schedule.<br>To change the payment instrument associated with a payout schedule, update the payout schedule.<br>(Deprecated) Specifies whether the payment instrument should be set as the default payout destination.|
|headers|object|false|none|none|
|» if-match|string|true|none|The payment instrument ETag value|

<h2 id="tocS_PlatformsFileRetrieveResponse">PlatformsFileRetrieveResponse</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsfileretrieveresponse"></a>
<a id="schema_PlatformsFileRetrieveResponse"></a>
<a id="tocSplatformsfileretrieveresponse"></a>
<a id="tocsplatformsfileretrieveresponse"></a>

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "status": "invalid",
  "status_reasons": [
    "InvalidMimeType"
  ],
  "size": 1024,
  "mime_type": "application/pdf",
  "uploaded_on": "2020-12-01T15:01:01Z",
  "purpose": "identity_verification",
  "_links": {
    "download": {
      "href": "https://s3.eu-west-1.amazonaws.com/mp-files-api-clean-prod/ent_ociwguf5a5fe3ndmpnvpnwsi3e/file_6lbss42ezvoufcb2beo76rvwly?X-Amz-Expires=3600&x-amz-security-token=some_token"
    },
    "self": {
      "href": "https://files.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The ID of the file.|
|status|string|false|none|The current status of the file.|
|status_reasons|[string]|false|none|If `status` is `Invalid`, returns the reasons why the file was invalid. If `status` is any other value, returns `Null`.|
|size|number|false|none|The size of the file in KB.|
|mime_type|string|false|none|The MIME type of the file.|
|uploaded_on|string(date-time)|false|none|The date and time the file was uploaded, in ISO 8601 UTC format.|
|purpose|string|false|none|The purpose of the file, as provided in the initial request.|
|_links|object|false|none|none|
|» **additionalProperties**|[Link](#schemalink)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|purpose|identity_verification|
|purpose|dispute_evidence|
|purpose|bank_verification|
|purpose|company_verification|
|purpose|financial_verification|
|purpose|tax_verification|

<h2 id="tocS_PlatformsFileUpload">PlatformsFileUpload</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsfileupload"></a>
<a id="schema_PlatformsFileUpload"></a>
<a id="tocSplatformsfileupload"></a>
<a id="tocsplatformsfileupload"></a>

```json
{
  "purpose": "identity_verification"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|purpose|string|true|none|The purpose of the file upload.|

#### Enumerated Values

|Property|Value|
|---|---|
|purpose|additional_document|
|purpose|articles_of_association|
|purpose|bank_verification|
|purpose|certified_authorised_signatory|
|purpose|company_ownership|
|purpose|company_verification|
|purpose|financial_verification|
|purpose|identity_verification|
|purpose|proof_of_legality|
|purpose|proof_of_principal_address|
|purpose|shareholder_structure|
|purpose|tax_verification|
|purpose|proof_of_residential_address|
|purpose|proof_of_registration|

<h2 id="tocS_PlatformsFileUploadResponse">PlatformsFileUploadResponse</h2>
<!-- backwards compatibility -->
<a id="schemaplatformsfileuploadresponse"></a>
<a id="schema_PlatformsFileUploadResponse"></a>
<a id="tocSplatformsfileuploadresponse"></a>
<a id="tocsplatformsfileuploadresponse"></a>

```json
{
  "id": "file_6lbss42ezvoufcb2beo76rvwly",
  "maximum_size_in_bytes": 4194304,
  "document_types_for_purpose": [
    "image/jpeg",
    "image/png",
    "image/jpg"
  ],
  "_links": {
    "upload": {
      "href": "https://s3.eu-west-1.amazonaws.com/mp-files-api-staging-prod/ent_ociwguf5a5fe3ndmpnvpnwsi3e/file_6lbss42ezvoufcb2beo76rvwly?AWSAccessKeyId=ASIX4BFJOBCQFLAMPKU3&Expires=1661355993&x-amz-security-token=some_token"
    },
    "self": {
      "href": "https://files.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
    }
  }
}

```

File uploaded successfully.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The file identifier.|
|maximum_size_in_bytes|number|false|none|The maximum file size allowed, in bytes.|
|document_types_for_purpose|[string]|false|none|The MIME file types allowed for the document purpose, provided on the initial file upload request.|
|_links|object|false|none|none|
|» upload|object|false|none|Send a data-binary type request to this URL with your file attached. For example:<br><br>```<br>curl --location --request PUT 'https://s3.eu-west-1.amazonaws.com/mp-files-api-staging-prod/ent_ociwguf5a5fe3ndmpnvpnwsi3e/file_6lbss42ezvoufcb2beo76rvwly?AWSAccessKeyId=ASIX4BFJOBCQFLAMPKU3&Expires=1661355993&x-amz-security-token=some_token'<br>--data-binary '@/C:/Users/Test/test.pdf'<br>```|
|»» href|string|false|none|none|
|» self|object|false|none|The file information retrieval URL.|
|»» href|string|false|none|none|

<h2 id="tocS_ReserveRuleCreateRequest">ReserveRuleCreateRequest</h2>
<!-- backwards compatibility -->
<a id="schemareserverulecreaterequest"></a>
<a id="schema_ReserveRuleCreateRequest"></a>
<a id="tocSreserverulecreaterequest"></a>
<a id="tocsreserverulecreaterequest"></a>

```json
{
  "type": "rolling",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  },
  "valid_from": "2019-08-24T14:15:22Z"
}

```

ReserveRuleCreateRequest

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ReserveRuleUpdateRequest](#schemareserveruleupdaterequest)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» valid_from|string(date-time)|true|none|The date and time the reserve rule will come into effect. This must be at least 15 minutes in the future.|

<h2 id="tocS_ReserveRuleId">ReserveRuleId</h2>
<!-- backwards compatibility -->
<a id="schemareserveruleid"></a>
<a id="schema_ReserveRuleId"></a>
<a id="tocSreserveruleid"></a>
<a id="tocsreserveruleid"></a>

```json
"rsv_qn4nis4k3ykpzzu7cvtuvhqqga"

```

ReserveRuleId

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ReserveRuleId|string|false|none|none|

<h2 id="tocS_ReserveRuleQueryResponse">ReserveRuleQueryResponse</h2>
<!-- backwards compatibility -->
<a id="schemareserverulequeryresponse"></a>
<a id="schema_ReserveRuleQueryResponse"></a>
<a id="tocSreserverulequeryresponse"></a>
<a id="tocsreserverulequeryresponse"></a>

```json
{
  "data": [
    {
      "type": "rolling",
      "rolling": {
        "percentage": 10,
        "holding_duration": {
          "weeks": 2
        }
      },
      "valid_from": "2019-08-24T14:15:22Z",
      "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
      "_links": {
        "property1": {
          "href": "string"
        },
        "property2": {
          "href": "string"
        }
      }
    }
  ],
  "_links": {
    "property1": {
      "href": "string"
    },
    "property2": {
      "href": "string"
    }
  }
}

```

ReserveRuleQueryResponse

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|data|[[ReserveRuleReadResponse](#schemareserverulereadresponse)]|false|none|none|
|_links|object|false|none|none|
|» **additionalProperties**|[Link](#schemalink)|false|none|none|

<h2 id="tocS_ReserveRuleReadResponse">ReserveRuleReadResponse</h2>
<!-- backwards compatibility -->
<a id="schemareserverulereadresponse"></a>
<a id="schema_ReserveRuleReadResponse"></a>
<a id="tocSreserverulereadresponse"></a>
<a id="tocsreserverulereadresponse"></a>

```json
{
  "type": "rolling",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  },
  "valid_from": "2019-08-24T14:15:22Z",
  "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
  "_links": {
    "property1": {
      "href": "string"
    },
    "property2": {
      "href": "string"
    }
  }
}

```

ReserveRuleReadResponse

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[ReserveRuleCreateRequest](#schemareserverulecreaterequest)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» id|[ReserveRuleId](#schemareserveruleid)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» _links|object|false|none|none|
|»» **additionalProperties**|[Link](#schemalink)|false|none|none|

<h2 id="tocS_ReserveRuleUpdateRequest">ReserveRuleUpdateRequest</h2>
<!-- backwards compatibility -->
<a id="schemareserveruleupdaterequest"></a>
<a id="schema_ReserveRuleUpdateRequest"></a>
<a id="tocSreserveruleupdaterequest"></a>
<a id="tocsreserveruleupdaterequest"></a>

```json
{
  "type": "rolling",
  "rolling": {
    "percentage": 10,
    "holding_duration": {
      "weeks": 2
    }
  }
}

```

ReserveRuleUpdateRequest

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|none|
|rolling|[RollingReserveRule](#schemarollingreserverule)|true|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|type|rolling|

<h2 id="tocS_ReserveRuleWriteResponse">ReserveRuleWriteResponse</h2>
<!-- backwards compatibility -->
<a id="schemareserverulewriteresponse"></a>
<a id="schema_ReserveRuleWriteResponse"></a>
<a id="tocSreserverulewriteresponse"></a>
<a id="tocsreserverulewriteresponse"></a>

```json
{
  "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
  "_links": {
    "self": {
      "href": "string"
    }
  }
}

```

ReserveRuleWriteResponse

### Properties

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» id|[ReserveRuleId](#schemareserveruleid)|false|none|none|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|object|false|none|none|
|» _links|object|false|none|none|
|»» self|[Link](#schemalink)|false|none|none|

<h2 id="tocS_RollingReserveRule">RollingReserveRule</h2>
<!-- backwards compatibility -->
<a id="schemarollingreserverule"></a>
<a id="schema_RollingReserveRule"></a>
<a id="tocSrollingreserverule"></a>
<a id="tocsrollingreserverule"></a>

```json
{
  "percentage": 10,
  "holding_duration": {
    "weeks": 2
  }
}

```

RollingReserveRule

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|percentage|number|true|none|The percentage of captured funds that will be reserved as a collateral balance.|
|holding_duration|object|true|none|The length of time the collateral balance will be reserved for.|
|» weeks|integer|true|none|none|

<h2 id="tocS_ScheduleFrequencyDaily">ScheduleFrequencyDaily</h2>
<!-- backwards compatibility -->
<a id="schemaschedulefrequencydaily"></a>
<a id="schema_ScheduleFrequencyDaily"></a>
<a id="tocSschedulefrequencydaily"></a>
<a id="tocsschedulefrequencydaily"></a>

```json
{
  "frequency": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|frequency|string|false|none|Used to indicate how often funds should be paid out to a sub-entity.|

<h2 id="tocS_ScheduleFrequencyDailyIsv">ScheduleFrequencyDailyIsv</h2>
<!-- backwards compatibility -->
<a id="schemaschedulefrequencydailyisv"></a>
<a id="schema_ScheduleFrequencyDailyIsv"></a>
<a id="tocSschedulefrequencydailyisv"></a>
<a id="tocsschedulefrequencydailyisv"></a>

```json
{
  "frequency": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|frequency|string|false|none|Used to indicate how often funds should be paid out to a sub-entity. For SaaS sellers, a daily schedule runs on working days only (Monday to Friday). Payouts do not take place on weekends. The payout is based on the sub-entity's available balance as of 00:00 in the sub-entity's time zone.|

<h2 id="tocS_ScheduleFrequencyMonthly">ScheduleFrequencyMonthly</h2>
<!-- backwards compatibility -->
<a id="schemaschedulefrequencymonthly"></a>
<a id="schema_ScheduleFrequencyMonthly"></a>
<a id="tocSschedulefrequencymonthly"></a>
<a id="tocsschedulefrequencymonthly"></a>

```json
{
  "frequency": "string",
  "by_month_day": [
    2
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|frequency|string|false|none|Used to indicate how often funds should be paid out to a sub-entity.|
|by_month_day|[integer]|true|none|The day or days of the month the payout should take place.|

<h2 id="tocS_ScheduleFrequencyMonthlyIsv">ScheduleFrequencyMonthlyIsv</h2>
<!-- backwards compatibility -->
<a id="schemaschedulefrequencymonthlyisv"></a>
<a id="schema_ScheduleFrequencyMonthlyIsv"></a>
<a id="tocSschedulefrequencymonthlyisv"></a>
<a id="tocsschedulefrequencymonthlyisv"></a>

```json
{
  "frequency": "string",
  "by_month_day": [
    1,
    15
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|frequency|string|false|none|Used to indicate how often funds should be paid out to a sub-entity. For SaaS sellers, the payout is based on the sub-entity's available balance as of 00:00 in the sub-entity's time zone.|
|by_month_day|[integer]|true|none|The day or days of the month the payout should take place. For SaaS sellers, only the following combinations are supported, in any order: `[1]`, `[15]`, `[1, 15]`, or `[1, 16]`.|

#### Enumerated Values

|Property|Value|
|---|---|
|by_month_day|[1]|
|by_month_day|[15]|
|by_month_day|[1,15]|
|by_month_day|[15,1]|
|by_month_day|[1,16]|
|by_month_day|[16,1]|

<h2 id="tocS_ScheduleFrequencyWeekly">ScheduleFrequencyWeekly</h2>
<!-- backwards compatibility -->
<a id="schemaschedulefrequencyweekly"></a>
<a id="schema_ScheduleFrequencyWeekly"></a>
<a id="tocSschedulefrequencyweekly"></a>
<a id="tocsschedulefrequencyweekly"></a>

```json
{
  "frequency": "string",
  "by_day": [
    "monday"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|frequency|string|false|none|Used to indicate how often funds should be paid out to a sub-entity.|
|by_day|[string]|true|none|The day or days of the week the payout should take place.|

<h2 id="tocS_ScheduleFrequencyWeeklyIsv">ScheduleFrequencyWeeklyIsv</h2>
<!-- backwards compatibility -->
<a id="schemaschedulefrequencyweeklyisv"></a>
<a id="schema_ScheduleFrequencyWeeklyIsv"></a>
<a id="tocSschedulefrequencyweeklyisv"></a>
<a id="tocsschedulefrequencyweeklyisv"></a>

```json
{
  "frequency": "string",
  "by_day": [
    "monday"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|frequency|string|false|none|Used to indicate how often funds should be paid out to a sub-entity. For SaaS sellers, the payout is based on the sub-entity's available balance as of 00:00 in the sub-entity's time zone.|
|by_day|[string]|true|none|The day or days of the week the payout should take place. For SaaS sellers, only working days (Monday to Friday) are supported. Payouts set to take place on weekends are rejected.|

<h2 id="tocS_UpdateScheduleRequest">UpdateScheduleRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdateschedulerequest"></a>
<a id="schema_UpdateScheduleRequest"></a>
<a id="tocSupdateschedulerequest"></a>
<a id="tocsupdateschedulerequest"></a>

```json
{
  "ISO": {
    "enabled": true,
    "threshold": 100,
    "payment_instrument_id": "ppi_w4jelhppmfiufdnatam37wrfc4",
    "recurrence": {
      "frequency": "weekly",
      "by_day": [
        "monday"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ISO|object(ISO 4217)|false|none|The three-letter ISO currency code of the account's currency.|
|» enabled|boolean|false|none|Indicates the status of the payout schedule.|
|» threshold|number|false|none|Minimum available balance on the account to do a payout. If the balance is less than the threshold, then the payout instruction will not send.|
|» payment_instrument_id|string|false|none|The ID of the platforms payment instrument used for payouts on this schedule.|
|» recurrence|object|false|none|Information about how often the schedule takes place.|
|»» frequency|string|true|none|none|

<h2 id="tocS_UpdateScheduleRequestIsv">UpdateScheduleRequestIsv</h2>
<!-- backwards compatibility -->
<a id="schemaupdateschedulerequestisv"></a>
<a id="schema_UpdateScheduleRequestIsv"></a>
<a id="tocSupdateschedulerequestisv"></a>
<a id="tocsupdateschedulerequestisv"></a>

```json
{
  "ISO": {
    "enabled": true,
    "threshold": 100,
    "balance_minimum": 500,
    "carry_forward_enabled": true,
    "payment_instrument_id": "ppi_w4jelhppmfiufdnatam37wrfc4",
    "recurrence": {
      "frequency": "weekly",
      "by_day": [
        "monday"
      ]
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ISO|object(ISO 4217)|false|none|The three-letter ISO currency code of the account's currency.|
|» enabled|boolean|true|none|Indicates whether the payout schedule is enabled.|
|» threshold|number|false|none|The minimum balance, in the minor units of the schedule's currency, required for a payout to take place. If the sub-entity's available balance is below the `threshold`, Checkout.com does not send the payout instruction. Defaults to `0` if you do not set it.|
|» balance_minimum|number¦null|false|none|The amount, in the minor units of the schedule's currency, to retain in the sub-entity's available balance. Checkout.com pays out only the funds above the `balance_minimum`, and generates no payout otherwise. Defaults to `0` if you do not set it.|
|» carry_forward_enabled|boolean¦null|false|none|Indicates whether to carry forward any balance below the configured minimum to the next payout. Defaults to `false` if you do not set it.|
|» payment_instrument_id|string|false|none|The ID of the platforms payment instrument used as the payout destination. Optional for SaaS sellers. If included, it must reference a verified payment instrument, otherwise the request fails.|
|» recurrence|object|true|none|Information about how often the schedule takes place.|
|»» frequency|string|true|none|none|

<h2 id="tocS_USCompanyFull2-0">USCompanyFull2-0</h2>
<!-- backwards compatibility -->
<a id="schemauscompanyfull2-0"></a>
<a id="schema_USCompanyFull2-0"></a>
<a id="tocSuscompanyfull2-0"></a>
<a id="tocsuscompanyfull2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "USD"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 2000000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringstr",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "first_name": "string",
        "middle_name": "string",
        "last_name": "string",
        "identification": {
          "national_id_number": "stringstr"
        },
        "date_of_birth": {
          "day": 1,
          "month": 1,
          "year": 1900
        },
        "phone": {
          "number": 10000000
        },
        "address": {
          "address_line1": "string",
          "address_line2": "string",
          "city": "string",
          "state": "string",
          "zip": "string",
          "country": "st"
        },
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        },
        "roles": [
          "ubo"
        ]
      }
    ],
    "business_type": "private_corporation",
    "financial_details": {
      "annual_processing_volume": 0,
      "average_transaction_value": 0,
      "highest_transaction_value": 0,
      "currency": "USD"
    },
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    }
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "tax_verification": {
      "type": "ein_letter",
      "front": "stringstringstringstringstrings"
    }
  }
}

```

US Company - Full (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|false|none|The default holding currency code (iso-4217)|
|» holding_currencies|array|false|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|none|
|» phone|object|true|none|none|
|»» number|any|true|none|Include the area code|
|» email_addresses|object|true|none|none|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|none|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|string|true|none|Employer Identification Number (EIN).|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Information about representatives of this company.|
|»»» id|number|false|none|The representative's id.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»» last_name|string|true|none|The representative's last name.|
|»»» identification|object|true|none|Information about representatives of this company.|
|»»»» national_id_number|number|true|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» phone|object|false|none|The phone number of the sub-entity.|
|»»»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|»»» address|object|true|none|The representative's address.|
|»»»» address_line1|string|true|none|The first line of the address.|
|»»»» address_line2|number|false|none|The second line of the address.|
|»»»» city|string|true|none|The address city.|
|»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»» zip|string|true|none|The address zip/postal code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» documents|object|false|none|A legal document used to verify identity|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's roles within the company|
|» business_type|string|true|none|The legal type of the company|
|» financial_details|object|true|none|Seller financial questions and supporting documents.|
|»» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|»» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|»» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|»» currency|string|true|none|The currency used for the processing details provided.|
|» date_of_incorporation|object|false|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|documents|object|false|none|The documents used to support the verification of company details.|
|» company_verification|object|false|none|The document to use to confirm the company's identity.|
|»» type|string|true|none|The type of document being used for company verification.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» tax_verification|object|false|none|Employer Identification Number document.|
|»» type|string|true|none|The type of document used for tax verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|USD|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|business_type|private_corporation|
|business_type|publicly_traded_corporation|
|business_type|government_agency|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_liability_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|business_type|regulated_financial_institution|
|currency|USD|
|type|incorporation_document|
|type|articles_of_association|
|type|ein_letter|

<h2 id="tocS_USCompanyFull3-0">USCompanyFull3-0</h2>
<!-- backwards compatibility -->
<a id="schemauscompanyfull3-0"></a>
<a id="schema_USCompanyFull3-0"></a>
<a id="tocSuscompanyfull3-0"></a>
<a id="tocsuscompanyfull3-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "USD"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "US",
      "number": "stringstri"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringstr",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "company_position": "ceo",
        "roles": [
          "ubo"
        ],
        "ownership_percentage": 25,
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          },
          "certified_authorised_signatory": {
            "type": "power_of_attorney",
            "front": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "USD"
  },
  "documents": {
    "tax_verification": {
      "type": "ein_letter",
      "front": "stringstringstringstringstrings"
    },
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "articles_of_association": {
      "type": "memorandum_of_association",
      "front": "stringstringstringstringstrings"
    },
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "shareholder_structure": {
      "type": "certified_shareholder_structure",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_legality": {
      "type": "proof_of_legality",
      "front": "stringstringstringstringstrings"
    },
    "proof_of_principal_address": {
      "type": "proof_of_address",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}

```

US Company - Full (3.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|true|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|true|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|false|none|Phone number|
|»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»» number|string|true|none|The phone number without the country calling code|
|» email_addresses|object|false|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|»» message|string|false|none|A more descriptive message.|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|number|true|none|The sub-entity's Business Registration Number. <br><br>This can be a Commercial Registration number, a Ministry of Commerce certificate number, or an equivalent registration number.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[oneOf]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Personal information about the individual representing the sub-entity.|
|»»» id|number|false|none|The representative's id.|
|»»» individual|object|true|none|Information about the individual representing the sub-entity.|
|»»»» first_name|string|true|none|The representative's first name.|
|»»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»»» last_name|string|true|none|The representative's last name.|
|»»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»»» month|integer|true|none|The month of the year they were born.|
|»»»»» year|integer|true|none|The year they were born.|
|»»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» national_id_number|number|false|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»»» email_address|any|false|none|The main email address for this sub-entity.|
|»»»» phone|object|false|none|Phone number|
|»»»»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»»»»» number|string|true|none|The phone number without the country calling code|
|»»»» address|object|true|none|The representative's address.|
|»»»»» address_line1|string|true|none|The first line of the address.|
|»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»» city|string|true|none|The address city.|
|»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»» zip|string|true|none|The address zip/postal code.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» company_position|string|false|none|The position of the representative within the company.|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's role|
|»»» ownership_percentage|integer|false|none|The percentage ownership of the UBO or controlling company (required when over 25%)|
|»»» documents|object|false|none|Verification documents for the individual representative|
|»»»» identity_verification|object|false|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»»» certified_authorised_signatory|object|false|none|Required when the legal representative or other role owner is not registered on certificate of incorporation|
|»»»»» type|string|true|none|The type of document.|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» business_type|string|true|none|The legal type of the company|
|processing_details|object|true|none|Seller processing details.|
|» settlement_country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2) where the settlement bank account is located|
|» target_countries|[string]|true|none|Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The country code (iso-3166-1 alpha-2)|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|» currency|string|true|none|The currency used for the processing details provided.|
|documents|object|true|none|The documents used to support the verification of company details.|
|» tax_verification|object|false|none|Employer Identification Number document.|
|»» type|string|true|none|The type of document used for tax verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» company_verification|object|false|none|Certified by a power of attorney within the last 3 months|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» articles_of_association|object|false|none|Memorandum or Articles of Association document|
|»» type|string|true|none|The type of document used for company verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» bank_verification|object|false|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» shareholder_structure|object|false|none|Shareholder structure chart (including % of shares) certified by a competent authority individual and dated within last 3 months|
|»» type|string|true|none|The type of document.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» proof_of_legality|object|false|none|A regulatory licence document required for the company to operate (when applicable)|
|»» type|string|true|none|The type of document used for proof of legality|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» proof_of_principal_address|object|false|none|Proof of principal place of business|
|»» type|string|true|none|The type of document being used as address verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document1|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document2|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document3|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|USD|
|country_code|US|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|business_type|individual_or_sole_proprietorship|
|business_type|private_corporation|
|business_type|limited_liability_corporation|
|business_type|publicly_traded_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|government_agency|
|business_type|regulated_financial_institution|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|currency|USD|
|type|ein_letter|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|bank_statement|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|

<h2 id="tocS_USCompanyLite2-0">USCompanyLite2-0</h2>
<!-- backwards compatibility -->
<a id="schemauscompanylite2-0"></a>
<a id="schema_USCompanyLite2-0"></a>
<a id="tocSuscompanylite2-0"></a>
<a id="tocsuscompanylite2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 2000000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "company": {
    "legal_name": "string",
    "trading_name": "string",
    "business_registration_number": "stringstr",
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "first_name": "string",
        "middle_name": "string",
        "last_name": "string",
        "identification": {
          "national_id_number": "stringstr"
        },
        "date_of_birth": {
          "day": 1,
          "month": 1,
          "year": 1900
        },
        "phone": {
          "number": 10000000
        },
        "address": {
          "address_line1": "string",
          "address_line2": "string",
          "city": "string",
          "state": "string",
          "zip": "string",
          "country": "st"
        },
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        },
        "roles": [
          "ubo"
        ]
      }
    ],
    "business_type": "private_corporation",
    "financial_details": {
      "annual_processing_volume": 0,
      "average_transaction_value": 0,
      "highest_transaction_value": 0,
      "currency": "USD"
    }
  },
  "documents": {
    "company_verification": {
      "type": "incorporation_document",
      "front": "stringstringstringstringstrings"
    },
    "tax_verification": {
      "type": "ein_letter",
      "front": "stringstringstringstringstrings"
    }
  }
}

```

US Company - Lite (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|contact_details|object|true|none|none|
|» phone|object|true|none|none|
|»» number|any|true|none|Include the area code|
|» email_addresses|object|true|none|none|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|none|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» business_registration_number|string|false|none|Employer Identification Number (EIN).|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Representative|object|false|none|Information about representatives of this company.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»» last_name|string|true|none|The representative's last name.|
|»»» identification|object|false|none|Information about representatives of this company.|
|»»»» national_id_number|number|true|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»» date_of_birth|object|false|none|The date of birth of the person according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» phone|object|false|none|The phone number of the sub-entity.|
|»»»» number|any|true|none|The phone number. This must only contain numeric characters and can't contain only zeros. (For US numbers: It cannot start with 0 or 1 and must be at least 10 characters in length.)|
|»»» address|object|true|none|The representative's address.|
|»»»» address_line1|string|false|none|The first line of the address.|
|»»»» address_line2|number|false|none|The second line of the address.|
|»»»» city|string|false|none|The address city.|
|»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»» zip|string|false|none|The address zip/postal code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» documents|object|false|none|A legal document used to verify identity|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|»»» roles|[string]|false|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's roles within the company|
|» business_type|string|false|none|The legal type of the company|
|» financial_details|object|false|none|Seller financial questions and supporting documents.|
|»» annual_processing_volume|integer|false|none|The estimated annual processing volume. In minor units without decimals.|
|»» average_transaction_value|integer|false|none|The expected average transaction value. In minor units without decimals.|
|»» highest_transaction_value|integer|false|none|The expected highest transaction value. In minor units without decimals.|
|»» currency|string|false|none|The currency used for the processing details provided.|
|documents|object|false|none|The documents used to support the verification of company details.|
|» company_verification|object|false|none|The document to use to confirm the company's identity.|
|»» type|string|true|none|The type of document being used for company verification.|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» tax_verification|object|false|none|Employer Identification Number document.|
|»» type|string|true|none|The type of document used for tax verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|Representative Role|ubo|
|Representative Role|authorised_signatory|
|Representative Role|control_person|
|business_type|private_corporation|
|business_type|publicly_traded_corporation|
|business_type|government_agency|
|business_type|individual_or_sole_proprietorship|
|business_type|limited_liability_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|business_type|regulated_financial_institution|
|currency|USD|
|type|incorporation_document|
|type|articles_of_association|
|type|ein_letter|

<h2 id="tocS_USISVSellerCompany3-0">USISVSellerCompany3-0</h2>
<!-- backwards compatibility -->
<a id="schemausisvsellercompany3-0"></a>
<a id="schema_USISVSellerCompany3-0"></a>
<a id="tocSusisvsellercompany3-0"></a>
<a id="tocsusisvsellercompany3-0"></a>

```json
{
  "reference": "isv-seller-example001",
  "agreed_terms": {
    "date": "2026-07-02T10:30:00Z",
    "ip_address": "8.8.8.8",
    "name": "Toby Arden",
    "email": "toby.arden@example.com",
    "version": "cko-platform-terms-1.0.0"
  },
  "seller_category": "cat_retail_001",
  "processing_details": {
    "annual_processing_volume": 1000,
    "average_transaction_value": 2000,
    "average_order_fulfillment_time": 3,
    "target_countries": [
      "US"
    ],
    "currency": "USD",
    "payments": {
      "ach": {
        "annual_ach_volume": 100000,
        "average_ach_transaction_size": 5000,
        "estimated_monthly_credit_volume": 50000,
        "average_credit_amount": 2500
      }
    }
  },
  "contact_details": {
    "phone": {
      "number": "4155678900",
      "country_code": "US"
    },
    "email_addresses": {
      "primary": "toby.arden@example.com",
      "pci_compliance_contact": "pci.contact@example.com"
    }
  },
  "profile": {
    "urls": [
      "https://www.isv-seller-example.com"
    ],
    "mccs": [
      "5551"
    ],
    "holding_currencies": [
      "USD"
    ],
    "default_holding_currency": "USD"
  },
  "company": {
    "business_registration_number": "12-3456789",
    "business_type": "private_corporation",
    "legal_name": "ISV Seller Example Inc",
    "trading_name": "ISV Seller Example",
    "registered_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "principal_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "date_of_incorporation": {
      "year": 2025,
      "month": 10,
      "day": 1
    },
    "representatives": [
      {
        "roles": [
          "ubo",
          "control_person"
        ],
        "ownership_percentage": 25,
        "company_position": "ceo",
        "individual": {
          "first_name": "Toby",
          "last_name": "Arden",
          "email_address": "toby.arden@example.com",
          "national_id_type": "ssn",
          "national_id_number": "123456789",
          "date_of_birth": {
            "day": 15,
            "month": 1,
            "year": 1990
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678901"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      },
      {
        "roles": [
          "authorised_signatory"
        ],
        "individual": {
          "first_name": "Alex",
          "last_name": "Morgan",
          "email_address": "alex.morgan@example.com",
          "national_id_type": "ssn",
          "national_id_number": "987654321",
          "date_of_birth": {
            "day": 22,
            "month": 6,
            "year": 1985
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678902"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      }
    ]
  }
}

```

US Company (SaaS)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity. Immutable after creation.|
|status|string|false|read-only|The current lifecycle state of the sub-entity. Read-only on input. POST always returns Draft.|
|is_draft|boolean|false|write-only|Indicates whether the sub-entity should remain in Draft on PUT, skipping due-diligence checks. POST always creates the entity in Draft regardless of this field.|
|agreed_terms|object|true|none|Details of the person who agreed to the terms and conditions on behalf of the sub-entity, captured as evidence of consent to Checkout.com onboarding.|
|» date|string(date-time)|true|none|Date and time the terms were agreed in RFC 3339 or ISO 8601 format.|
|» ip_address|string|true|none|IP address (IPv4 or IPv6) of the person at the time they agreed the terms.|
|» name|string|true|none|First and last name of the person who agreed to the terms.|
|» email|string(email)|true|none|Email address of the person who agreed to the terms.|
|» version|string|true|none|Identifier of the terms version that was agreed.|
|seller_category|string|true|none|The identifier of a seller category set up for your platform. Seller categories define the pricing, capabilities, and risk profile applied to sub-entities, and are configured during your platform's onboarding with Checkout.com. Contact your account manager for your platform's list of available identifiers.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|The collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[string]|true|none|The collection of merchant category codes that most closely describe the business.|
|»» Merchant category code|string|false|none|The merchant category code as a four-digit ISO 18245.<br><br>Reference: [Merchant Category Codes](https://www.checkout.com/docs/developer-resources/codes/merchant-category-codes).|
|» default_holding_currency|string|true|none|The default holding currency's three-letter ISO 4217 code.|
|» holding_currencies|[string]|true|none|The collection of currencies in which incoming funds are held.|
|»» Currency|string|false|none|The three-letter ISO 4217 code of the currency.|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|Phone number with country code.|
|»» country_code|string|true|none|The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered.|
|»» number|string|true|none|The phone number without the country calling code.|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|string(email)|true|none|The primary email address for this sub-entity.|
|»» pci_compliance_contact|string(email)|true|none|The email address of the person responsible for PCI compliance at this sub-entity.|
|processing_details|object|true|none|Information about the sub-entity's expected processing.|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume in minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value in minor units without decimals.|
|» average_order_fulfillment_time|integer|true|none|The average time in days between accepting payment and fulfilling the order.|
|» currency|string|true|none|The currency used for the processing details provided.|
|» target_countries|[string]|true|none|The list of two-letter ISO 3166-1 alpha-2 target country codes with more than 10% expected volume processing with Checkout.com.|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The two-letter ISO 3166-1 alpha-2 country code.|
|» payments|object|true|none|Payment method-specific processing details.|
|»» ach|object|true|none|ACH payment processing details.|
|»»» annual_ach_volume|integer|true|none|The estimated annual ACH processing volume in minor units without decimals.|
|»»» average_ach_transaction_size|integer|true|none|The expected average ACH transaction size in minor units without decimals.|
|»»» estimated_monthly_credit_volume|integer|true|none|The estimated monthly volume of ACH credit transactions (for example, refunds issued to customers) in minor units without decimals.|
|»»» average_credit_amount|integer|true|none|The average value of an ACH credit transaction (for example, a refund) in minor units without decimals.|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» legal_name|string|true|none|The legal name of the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'Doing Business As'.|
|» additional_trading_names|[string]|false|none|The collection of additional trading names for the sub-entity.|
|»» Trading name|string|false|none|An additional trading name of the entity.|
|» business_type|string|true|none|The legal type of the company.|
|» business_registration_number|string|true|none|US Employer Identification Number (EIN). Nine digits, with optional hyphen.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|true|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. Provide the US state as a two-letter ISO 3166-2 code.|
|»» zip|string|true|none|The address ZIP code or post code.|
|»» country|string|true|none|The two-letter ISO 3166-1 alpha-2 country code.<br><br>Reference: [Country codes](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» principal_address|object|true|none|The primary location of the company where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. For US addresses, provide the two-letter ISO 3166-2 code.|
|»» zip|string|false|none|The address ZIP code or post code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.<br><br>Reference: [Country codes](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» representatives|[object]|true|none|The list of the company's representatives.|
|»» roles|[string]|true|none|The individual's roles within the company.|
|»»» Representative role|string|false|none|The representative's role.|
|»» ownership_percentage|integer|false|none|The percentage ownership of the UBO (required when the representative holds the ubo role).|
|»» company_position|string|false|none|The position of the representative within the company (required for control_person role).|
|»» individual|object|true|none|Personal information about the individual representing the sub-entity.|
|»»» first_name|string|true|none|The representative's first name.|
|»»» middle_name|string|false|none|The representative's middle name. Required if it appears in official documents.|
|»»» last_name|string|true|none|The representative's last name.|
|»»» email_address|string(email)|true|none|The representative's email address.|
|»»» date_of_birth|object|true|none|The person's date of birth according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» address|object|true|none|The representative's residential address.|
|»»»» address_line1|string|true|none|The first line of the address.|
|»»»» address_line2|string|false|none|The second line of the address.|
|»»»» city|string|true|none|The address city.|
|»»»» state|string|false|none|The address state. For US addresses, provide the two-letter ISO 3166-2 code.|
|»»»» zip|string|true|none|The address ZIP code or post code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.|
|»»» place_of_birth|object|true|none|The person's place of birth.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.|
|»»» citizenships|[object]|true|none|The list of citizenships or legal statuses for the representative.|
|»»»» type|string|false|none|The type of citizenship or legal status (e.g. `citizenship`, `residency`).|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.|
|»»» national_id_type|string|true|none|The classification of the national identification number provided.|
|»»» national_id_number|string|true|none|When `national_id_type` is `ssn`, provide the SSN (or ITIN). Otherwise, provide the identifier from the chosen document type.|
|»»» phone|object|true|none|The representative's phone number.|
|»»»» country_code|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered.|
|»»»» number|string|true|none|The phone number without the country calling code.|
|»» documents|object|false|none|Verification documents for the individual representative.|
|»»» identity_verification|object|false|none|The document to use to confirm the individual's identity.|
|»»»» type|string|true|none|The type of document used for identity verification.|
|»»»» front|string|true|none|The ID of the front side of the document.|
|»»»» back|string|false|none|The ID of the back side of the document.|
|»»» certified_authorised_signatory|object|false|none|Required for representatives with the `authorised_signatory` role, when the legal representative or other role owner is not registered on the certificate of incorporation.|
|»»»» type|string|true|none|The type of document.|
|»»»» front|string|true|none|The ID of the front side of the document.|
|documents|object|false|none|Verification documents for the sub-entity.|
|» tax_verification|object|false|none|IRS-issued document used to verify the entity's tax identification.|
|»» type|string|true|none|The type of IRS-issued document used for tax verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» company_verification|object|false|none|Certified by a power of attorney within the last 3 months.|
|»» type|string|true|none|The type of document used for company verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» articles_of_association|object|false|none|Memorandum or Articles of Association document.|
|»» type|string|true|none|The type of document used.|
|»» front|string|true|none|The ID of the front side of the document.|
|» shareholder_structure|object|false|none|Shareholder structure chart including the percentage of shares certified by a competent authority individual and dated within the last 3 months.|
|»» type|string|true|none|The type of document.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_legality|object|false|none|A regulatory license document required for the company to operate if applicable.|
|»» type|string|true|none|The type of document used for proof of legality.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_principal_address|object|false|none|Proof of principal place of business.|
|»» type|string|true|none|The type of document used for address verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» financial_statements|object|false|none|Audited or management-prepared financial statements (when applicable).|
|»» type|string|true|none|The type of document.|
|»» front|string|true|none|The ID of the front side of the document.|

#### Enumerated Values

|Property|Value|
|---|---|
|default_holding_currency|USD|
|Currency|USD|
|country_code|US|
|currency|USD|
|business_type|private_corporation|
|business_type|limited_liability_corporation|
|business_type|publicly_traded_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|government_agency|
|business_type|regulated_financial_institution|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|country|US|
|Representative role|ubo|
|Representative role|authorised_signatory|
|Representative role|control_person|
|company_position|ceo|
|company_position|cfo|
|company_position|coo|
|company_position|managing_member|
|company_position|general_partner|
|company_position|president|
|company_position|vice_president|
|company_position|treasurer|
|company_position|other_senior_management|
|company_position|other_executive_officer|
|company_position|other_non_executive_non_senior|
|national_id_type|ssn|
|national_id_type|itin|
|national_id_type|passport|
|national_id_type|driving_license|
|national_id_type|national_id_card|
|national_id_type|residence_permit|
|national_id_type|other|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|power_of_attorney|
|type|ein_letter|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|certified_shareholder_structure|
|type|proof_of_legality|
|type|proof_of_address|
|type|financial_statements|

<h2 id="tocS_USISVSellerSoleTrader3-0">USISVSellerSoleTrader3-0</h2>
<!-- backwards compatibility -->
<a id="schemausisvsellersoletrader3-0"></a>
<a id="schema_USISVSellerSoleTrader3-0"></a>
<a id="tocSusisvsellersoletrader3-0"></a>
<a id="tocsusisvsellersoletrader3-0"></a>

```json
{
  "reference": "isv-sole-trader-example001",
  "agreed_terms": {
    "date": "2026-07-02T10:30:00Z",
    "ip_address": "8.8.8.8",
    "name": "Hannah Bret",
    "email": "hannah.bret@example.com",
    "version": "cko-platform-terms-1.0.0"
  },
  "seller_category": "cat_retail_001",
  "processing_details": {
    "annual_processing_volume": 1000,
    "average_transaction_value": 2000,
    "average_order_fulfillment_time": 3,
    "target_countries": [
      "US"
    ],
    "currency": "USD",
    "payments": {
      "ach": {
        "annual_ach_volume": 100000,
        "average_ach_transaction_size": 5000,
        "estimated_monthly_credit_volume": 50000,
        "average_credit_amount": 2500
      }
    }
  },
  "contact_details": {
    "phone": {
      "number": "4155678900",
      "country_code": "US"
    },
    "email_addresses": {
      "primary": "hannah.bret@example.com",
      "pci_compliance_contact": "pci.contact@example.com"
    }
  },
  "profile": {
    "urls": [
      "https://www.isv-sole-trader-example.com"
    ],
    "mccs": [
      "5551"
    ],
    "holding_currencies": [
      "USD"
    ],
    "default_holding_currency": "USD"
  },
  "company": {
    "business_type": "individual_or_sole_proprietorship",
    "is_registered_company": false,
    "trading_name": "Hannah's Goods",
    "date_of_incorporation": {
      "year": 2025,
      "month": 10,
      "day": 1
    },
    "principal_address": {
      "address_line1": "123 Main Street",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US"
    },
    "representatives": [
      {
        "roles": [
          "ubo"
        ],
        "ownership_percentage": 100,
        "individual": {
          "first_name": "Hannah",
          "last_name": "Bret",
          "email_address": "hannah.bret@example.com",
          "national_id_type": "ssn",
          "national_id_number": "123456789",
          "date_of_birth": {
            "day": 15,
            "month": 1,
            "year": 1990
          },
          "place_of_birth": {
            "country": "US"
          },
          "citizenships": [
            {
              "country": "US"
            }
          ],
          "phone": {
            "country_code": "US",
            "number": "4155678901"
          },
          "address": {
            "address_line1": "123 Main Street",
            "city": "San Francisco",
            "state": "CA",
            "zip": "94105",
            "country": "US"
          }
        }
      }
    ]
  }
}

```

US Sole Trader (SaaS)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity. Immutable after creation.|
|status|string|false|read-only|The current lifecycle state of the sub-entity. Read-only on input. POST always returns Draft.|
|is_draft|boolean|false|write-only|Indicates whether the sub-entity should remain in Draft on PUT, skipping due-diligence checks. POST always creates the entity in Draft regardless of this field.|
|agreed_terms|object|true|none|Details of the sole trader who agreed to the terms and conditions, captured as evidence of consent to Checkout.com onboarding.|
|» date|string(date-time)|true|none|Date and time the terms were agreed in RFC 3339 or ISO 8601 format.|
|» ip_address|string|true|none|IP address (IPv4 or IPv6) of the sole trader at the time they agreed the terms.|
|» name|string|true|none|First and last name of the sole trader who agreed to the terms.|
|» email|string(email)|true|none|Email address of the sole trader who agreed to the terms.|
|» version|string|true|none|Identifier of the terms version that was agreed.|
|seller_category|string|true|none|The identifier of a seller category set up for your platform. Seller categories define the pricing, capabilities, and risk profile applied to sub-entities, and are configured during your platform's onboarding with Checkout.com. Contact your account manager for your platform's list of available identifiers.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|The collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the website the sole trader accepts payments on.|
|» mccs|[string]|true|none|The collection of merchant category codes that most closely describe the business.|
|»» Merchant category code|string|false|none|The merchant category code as a four-digit ISO 18245.<br><br>Reference: [Merchant Category Codes](https://www.checkout.com/docs/developer-resources/codes/merchant-category-codes).|
|» default_holding_currency|string|true|none|The default holding currency's three-letter ISO 4217 code.|
|» holding_currencies|[string]|true|none|The collection of currencies in which incoming funds are held.|
|»» Currency|string|false|none|The three-letter ISO 4217 code of the currency.|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|true|none|Phone number with country code.|
|»» country_code|string|true|none|The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered.|
|»» number|string|true|none|The phone number without the country calling code.|
|» email_addresses|object|true|none|Email addresses for this sub-entity.|
|»» primary|string(email)|true|none|The main email address for this sub-entity.|
|»» pci_compliance_contact|string(email)|true|none|The email address of the person responsible for PCI compliance at this sub-entity.|
|processing_details|object|true|none|Information about the sub-entity's processing.|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume in minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value in minor units without decimals.|
|» average_order_fulfillment_time|integer|true|none|The average time in days between accepting payment and fulfilling the order.|
|» currency|string|true|none|The currency used for the processing details provided.|
|» target_countries|[string]|true|none|The list of two-letter ISO 3166-1 alpha-2 target country codes with more than 10% expected volume processing with Checkout.com.|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The two-letter ISO 3166-1 alpha-2 country code.|
|» payments|object|true|none|Payment method-specific processing details.|
|»» ach|object|true|none|ACH payment processing details.|
|»»» annual_ach_volume|integer|true|none|The estimated annual ACH processing volume in minor units without decimals.|
|»»» average_ach_transaction_size|integer|true|none|The expected average ACH transaction size in minor units without decimals.|
|»»» estimated_monthly_credit_volume|integer|true|none|The estimated monthly volume of ACH credit transactions (for example, refunds issued to customers) in minor units without decimals.|
|»»» average_credit_amount|integer|true|none|The average value of an ACH credit transaction (for example, a refund) in minor units without decimals.|
|company|object|true|none|Information about the sole trader sub-entity.|
|» is_registered_company|boolean|true|none|Indicates whether the sub-entity is a registered legal entity. Must be `false` for this variant.|
|» trading_name|string|true|none|The trading name the sole trader uses, also referred to as 'Doing Business As'.|
|» additional_trading_names|[string]|false|none|The collection of additional trading names for the sub-entity.|
|»» Trading name|string|false|none|An additional trading name of the sole trader.|
|» business_type|string|true|none|The legal type of the entity. Must be `individual_or_sole_proprietorship` for this variant.|
|» date_of_incorporation|object|true|none|The date the sole trader started trading.|
|»» day|integer|true|none|The day of the month the sole trader started trading.|
|»» month|integer|true|none|The month the sole trader started trading.|
|»» year|integer|true|none|The year the sole trader started trading.|
|» principal_address|object|true|none|The primary location where the sole trader performs business.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|string|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|false|none|The address state. Provide the US state as a two-letter ISO 3166-2 code.|
|»» zip|string|true|none|The address ZIP code or post code.|
|»» country|string|true|none|The two-letter ISO 3166-1 alpha-2 country code.<br><br>Reference: [Country codes](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» representatives|[object]|true|none|The list of representatives for the sub-entity. Sole traders must have exactly one representative — the individual themselves — with roles set to `[ubo]`.|
|»» roles|[string]|true|none|The representative's roles. For sole traders, must be `[ubo]` only.|
|»» ownership_percentage|integer|false|none|The percentage ownership of the sole trader with the UBO role.|
|»» individual|object|true|none|Personal information about the sole trader.|
|»»» first_name|string|true|none|The sole trader's first name.|
|»»» middle_name|string|false|none|The sole trader's middle name. Required if it appears in official documents.|
|»»» last_name|string|true|none|The sole trader's last name.|
|»»» email_address|string(email)|true|none|The sole trader's email address.|
|»»» date_of_birth|object|true|none|The person's date of birth according to the Gregorian calendar.|
|»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»» month|integer|true|none|The month of the year they were born.|
|»»»» year|integer|true|none|The year they were born.|
|»»» address|object|true|none|The sole trader's residential address.|
|»»»» address_line1|string|true|none|The first line of the address.|
|»»»» address_line2|string|false|none|The second line of the address.|
|»»»» city|string|true|none|The address city.|
|»»»» state|string|false|none|The address state. For US addresses, provide the two-letter ISO 3166-2 code.|
|»»»» zip|string|true|none|The address ZIP code or post code.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.|
|»»» place_of_birth|object|true|none|The person's place of birth.|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.|
|»»» citizenships|[object]|true|none|The list of citizenships or legal statuses of the sole trader.|
|»»»» type|string|false|none|The type of citizenship or legal status (e.g. `citizenship`, `residency`).|
|»»»» country|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code.|
|»»» national_id_type|string|true|none|The classification of the national identification number provided.|
|»»» national_id_number|string|true|none|When `national_id_type` is `ssn`, provide the SSN (or ITIN). Otherwise, provide the identifier from the chosen document type.|
|»»» phone|object|true|none|The sole trader's phone number.|
|»»»» country_code|string(iso-3166-1-alpha-2)|true|none|The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered.|
|»»»» number|string|true|none|The phone number without the country calling code.|
|»» documents|object|false|none|Verification documents for the sole trader.|
|»»» identity_verification|object|false|none|The document to use to confirm the sole trader's identity.|
|»»»» type|string|true|none|The type of document used for identity verification.|
|»»»» front|string|true|none|The ID of the front side of the document.|
|»»»» back|string|false|none|The ID of the back side of the document.|
|documents|object|false|none|Verification documents for the sub-entity.|
|» tax_verification|object|false|none|IRS-issued document used to verify the entity's tax identification.|
|»» type|string|true|none|The type of IRS-issued document used for tax verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» company_verification|object|false|none|Certified by a power of attorney within the last 3 months.|
|»» type|string|true|none|The type of document used for company verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» articles_of_association|object|false|none|Memorandum or Articles of Association document.|
|»» type|string|true|none|The type of document used.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_legality|object|false|none|A regulatory license document required for the company to operate if applicable.|
|»» type|string|true|none|The type of document used for proof of legality.|
|»» front|string|true|none|The ID of the front side of the document.|
|» proof_of_principal_address|object|false|none|Proof of principal place of business.|
|»» type|string|true|none|The type of document used for address verification.|
|»» front|string|true|none|The ID of the front side of the document.|
|» financial_statements|object|false|none|Financial statements (when applicable).|
|»» type|string|true|none|The type of document.|
|»» front|string|true|none|The ID of the front side of the document.|

#### Enumerated Values

|Property|Value|
|---|---|
|default_holding_currency|USD|
|Currency|USD|
|country_code|US|
|currency|USD|
|is_registered_company|false|
|business_type|individual_or_sole_proprietorship|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|country|US|
|national_id_type|ssn|
|national_id_type|itin|
|national_id_type|passport|
|national_id_type|driving_license|
|national_id_type|national_id_card|
|national_id_type|residence_permit|
|national_id_type|other|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|type|ein_letter|
|type|incorporation_document|
|type|memorandum_of_association|
|type|articles_of_association|
|type|proof_of_legality|
|type|proof_of_address|
|type|financial_statements|

<h2 id="tocS_USSoleTraderFull2-0">USSoleTraderFull2-0</h2>
<!-- backwards compatibility -->
<a id="schemaussoletraderfull2-0"></a>
<a id="schema_USSoleTraderFull2-0"></a>
<a id="tocSussoletraderfull2-0"></a>
<a id="tocsussoletraderfull2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "USD"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 2000000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "documents": {
    "identity_verification": {
      "type": "passport",
      "front": "stringstringstringstringstrings",
      "back": "stringstringstringstringstrings"
    }
  },
  "individual": {
    "trading_name": "string",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "date_of_birth": {
      "day": 1,
      "month": 1,
      "year": 1900
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "identification": {
      "national_id_number": "stringstr"
    },
    "financial_details": {
      "annual_processing_volume": 0,
      "average_transaction_value": 0,
      "highest_transaction_value": 0,
      "currency": "USD"
    }
  }
}

```

US Sole Trader - Full (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|false|none|The default holding currency code (iso-4217)|
|» holding_currencies|array|false|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|none|
|» phone|object|true|none|none|
|»» number|any|true|none|Include the area code|
|» email_addresses|object|true|none|none|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|none|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|documents|object|false|none|A legal document used to verify identity.|
|» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»» type|string|true|none|The type of document used for identity verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|individual|object|true|none|Information about the individual represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» first_name|string|true|none|The representative's first name.|
|» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|» last_name|string|true|none|The representative's last name.|
|» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»» day|integer|true|none|The calendar day of the month they were born.|
|»» month|integer|true|none|The month of the year they were born.|
|»» year|integer|true|none|The year they were born.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» identification|object|true|none|Information about representatives of this company.|
|»» national_id_number|number|true|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|» financial_details|object|true|none|Seller financial questions and supporting documents.|
|»» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|»» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|»» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|»» currency|string|true|none|The currency used for the processing details provided.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|USD|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|currency|USD|

<h2 id="tocS_USSoleTraderFull3-0">USSoleTraderFull3-0</h2>
<!-- backwards compatibility -->
<a id="schemaussoletraderfull3-0"></a>
<a id="schema_USSoleTraderFull3-0"></a>
<a id="tocSussoletraderfull3-0"></a>
<a id="tocsussoletraderfull3-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ],
    "default_holding_currency": null,
    "holding_currencies": [
      "USD"
    ]
  },
  "contact_details": {
    "phone": {
      "country_code": "US",
      "number": "stringstri"
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string",
      "message": "string"
    }
  ],
  "company": {
    "trading_name": "string",
    "date_of_incorporation": {
      "day": 1,
      "month": 1,
      "year": 1500
    },
    "principal_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "representatives": [
      {
        "id": "stringstringstringstringstring",
        "individual": {
          "first_name": "string",
          "middle_name": "string",
          "last_name": "string",
          "date_of_birth": {
            "day": 1,
            "month": 1,
            "year": 1900
          },
          "place_of_birth": {
            "country": "st"
          },
          "national_id_number": "stringstr",
          "email_address": null,
          "phone": {
            "country_code": "AF",
            "number": "string"
          },
          "address": {
            "address_line1": "string",
            "address_line2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "country": "st"
          }
        },
        "roles": [
          "ubo"
        ],
        "documents": {
          "identity_verification": {
            "type": "passport",
            "front": "stringstringstringstringstrings",
            "back": "stringstringstringstringstrings"
          }
        }
      }
    ],
    "business_type": "individual_or_sole_proprietorship"
  },
  "processing_details": {
    "settlement_country": "st",
    "target_countries": [
      "st"
    ],
    "annual_processing_volume": 0,
    "average_transaction_value": 0,
    "highest_transaction_value": 0,
    "currency": "USD"
  },
  "documents": {
    "bank_verification": {
      "type": "bank_statement",
      "front": "stringstringstringstringstrings"
    },
    "additional_document1": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document2": {
      "front": "stringstringstringstringstrings"
    },
    "additional_document3": {
      "front": "stringstringstringstringstrings"
    }
  }
}

```

US Sole Trader - Full (3.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|» default_holding_currency|any|true|none|The default holding currency code (iso-4217)|
|» holding_currencies|[string]|true|none|Incoming funds are held in your selected currencies|
|»» Currency|string|false|none|The currency code (iso-4217)|
|contact_details|object|true|none|Contact details of this sub-entity.|
|» phone|object|false|none|Phone number|
|»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»» number|string|true|none|The phone number without the country calling code|
|» email_addresses|object|false|none|Email addresses for this sub-entity.|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|The details of the user responsible for onboarding the sub-entity.|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|»» message|string|false|none|A more descriptive message.|
|company|object|true|none|Information about the company represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» date_of_incorporation|object|true|none|The date the company was incorporated.|
|»» day|integer|false|none|The day of the month the company was incorporated.|
|»» month|integer|true|none|The month the company was incorporated.|
|»» year|integer|true|none|The year the company was incorporated.|
|» principal_address|object|true|none|The primary location where business is performed.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» representatives|[object]|true|none|Information about representatives of this company.|
|»» Person of Interest|object|false|none|Personal information about the individual representing the sub-entity.|
|»»» id|number|false|none|The representative's id.|
|»»» individual|object|true|none|Information about the individual representing the sub-entity.|
|»»»» first_name|string|true|none|The representative's first name.|
|»»»» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|»»»» last_name|string|true|none|The representative's last name.|
|»»»» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»»»»» day|integer|true|none|The calendar day of the month they were born.|
|»»»»» month|integer|true|none|The month of the year they were born.|
|»»»»» year|integer|true|none|The year they were born.|
|»»»» place_of_birth|object|true|none|The place of birth of the person.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»»» national_id_number|number|false|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|»»»» email_address|any|false|none|The representative's personal email address.|
|»»»» phone|object|false|none|Phone number|
|»»»»» country_code|string|true|none|The country code (iso-3166-1 alpha-2) where the phone number is registered|
|»»»»» number|string|true|none|The phone number without the country calling code|
|»»»» address|object|true|none|The representative's address.|
|»»»»» address_line1|string|true|none|The first line of the address.|
|»»»»» address_line2|number|false|none|The second line of the address.|
|»»»»» city|string|true|none|The address city.|
|»»»»» state|string|false|none|The address state. This field is required for addresses based in the US and France. For US addresses, provide the state as an ISO 3166-1 code. For French addresses, provide the Department the address is located in.|
|»»»»» zip|string|true|none|The address zip/postal code.|
|»»»»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|»»» roles|[string]|true|none|The individual's roles within the company|
|»»»» Representative Role|string|false|none|The representative's role|
|»»» documents|object|true|none|Verification documents for the individual representative|
|»»»» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»»»»» type|string|true|none|The type of document used for identity verification|
|»»»»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»»»»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|» business_type|string|true|none|The legal type of the company|
|processing_details|object|true|none|Seller processing details.|
|» settlement_country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2) where the settlement bank account is located|
|» target_countries|[string]|true|none|Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout|
|»» Country|string(iso-3166-1-alpha-2)|false|none|The country code (iso-3166-1 alpha-2)|
|» annual_processing_volume|integer|true|none|The estimated annual processing volume. In minor units without decimals.|
|» average_transaction_value|integer|true|none|The expected average transaction value. In minor units without decimals.|
|» highest_transaction_value|integer|true|none|The expected highest transaction value. In minor units without decimals.|
|» currency|string|true|none|The currency used for the processing details provided.|
|documents|object|true|none|The documents used to support the verification of business details.|
|» bank_verification|object|true|none|A document showing transactions from last 3 months|
|»» type|string|true|none|The type of document being used as bank verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document1|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document2|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|» additional_document3|object|false|none|Additional space for documents to be provided when requested|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|

#### Enumerated Values

|Property|Value|
|---|---|
|Currency|USD|
|country_code|US|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|country_code|AF|
|country_code|AL|
|country_code|DZ|
|country_code|AS|
|country_code|AD|
|country_code|AO|
|country_code|AI|
|country_code|AG|
|country_code|AR|
|country_code|AM|
|country_code|AW|
|country_code|AU|
|country_code|AT|
|country_code|AZ|
|country_code|BS|
|country_code|BH|
|country_code|BD|
|country_code|BB|
|country_code|BY|
|country_code|BE|
|country_code|BZ|
|country_code|BJ|
|country_code|BM|
|country_code|BT|
|country_code|BO|
|country_code|BA|
|country_code|BW|
|country_code|BR|
|country_code|BN|
|country_code|BG|
|country_code|BF|
|country_code|BI|
|country_code|CV|
|country_code|KH|
|country_code|CM|
|country_code|CA|
|country_code|KY|
|country_code|CF|
|country_code|TD|
|country_code|CL|
|country_code|CN|
|country_code|CO|
|country_code|KM|
|country_code|CD|
|country_code|CG|
|country_code|CK|
|country_code|CR|
|country_code|HR|
|country_code|CU|
|country_code|CW|
|country_code|CY|
|country_code|CZ|
|country_code|DK|
|country_code|DJ|
|country_code|DM|
|country_code|DO|
|country_code|EC|
|country_code|EG|
|country_code|SV|
|country_code|GQ|
|country_code|ER|
|country_code|EE|
|country_code|SZ|
|country_code|ET|
|country_code|FO|
|country_code|FJ|
|country_code|FI|
|country_code|FR|
|country_code|GF|
|country_code|PF|
|country_code|GA|
|country_code|GM|
|country_code|GE|
|country_code|DE|
|country_code|GH|
|country_code|GI|
|country_code|GR|
|country_code|GL|
|country_code|GD|
|country_code|GP|
|country_code|GU|
|country_code|GT|
|country_code|GG|
|country_code|GN|
|country_code|GW|
|country_code|GY|
|country_code|HT|
|country_code|HN|
|country_code|HK|
|country_code|HU|
|country_code|IS|
|country_code|IN|
|country_code|ID|
|country_code|IR|
|country_code|IQ|
|country_code|IE|
|country_code|IM|
|country_code|IL|
|country_code|IT|
|country_code|JM|
|country_code|JP|
|country_code|JE|
|country_code|JO|
|country_code|KZ|
|country_code|KE|
|country_code|KI|
|country_code|KP|
|country_code|KR|
|country_code|KW|
|country_code|KG|
|country_code|LA|
|country_code|LV|
|country_code|LB|
|country_code|LS|
|country_code|LR|
|country_code|LY|
|country_code|LI|
|country_code|LT|
|country_code|LU|
|country_code|MO|
|country_code|MG|
|country_code|MW|
|country_code|MY|
|country_code|MV|
|country_code|ML|
|country_code|MT|
|country_code|MH|
|country_code|MQ|
|country_code|MR|
|country_code|MU|
|country_code|MX|
|country_code|FM|
|country_code|MD|
|country_code|MC|
|country_code|MN|
|country_code|ME|
|country_code|MS|
|country_code|MA|
|country_code|MZ|
|country_code|MM|
|country_code|NA|
|country_code|NR|
|country_code|NP|
|country_code|NL|
|country_code|NC|
|country_code|NZ|
|country_code|NI|
|country_code|NE|
|country_code|NG|
|country_code|NU|
|country_code|NF|
|country_code|MK|
|country_code|MP|
|country_code|NO|
|country_code|OM|
|country_code|PK|
|country_code|PW|
|country_code|PA|
|country_code|PG|
|country_code|PY|
|country_code|PE|
|country_code|PH|
|country_code|PL|
|country_code|PT|
|country_code|PR|
|country_code|QA|
|country_code|RE|
|country_code|RO|
|country_code|RU|
|country_code|RW|
|country_code|BL|
|country_code|SH|
|country_code|KN|
|country_code|LC|
|country_code|PM|
|country_code|VC|
|country_code|WS|
|country_code|SM|
|country_code|ST|
|country_code|SA|
|country_code|SN|
|country_code|RS|
|country_code|SC|
|country_code|SL|
|country_code|SG|
|country_code|BQ|
|country_code|SX|
|country_code|SK|
|country_code|SI|
|country_code|SB|
|country_code|SO|
|country_code|ZA|
|country_code|GS|
|country_code|SS|
|country_code|ES|
|country_code|LK|
|country_code|SD|
|country_code|SR|
|country_code|SE|
|country_code|CH|
|country_code|SY|
|country_code|TW|
|country_code|TJ|
|country_code|TZ|
|country_code|TH|
|country_code|TL|
|country_code|TG|
|country_code|TK|
|country_code|TO|
|country_code|TT|
|country_code|TN|
|country_code|TR|
|country_code|TM|
|country_code|TC|
|country_code|TV|
|country_code|UG|
|country_code|UA|
|country_code|AE|
|country_code|GB|
|country_code|US|
|country_code|UY|
|country_code|UZ|
|country_code|VU|
|country_code|VA|
|country_code|VE|
|country_code|VN|
|country_code|VG|
|country_code|VI|
|country_code|WF|
|country_code|EH|
|country_code|YE|
|country_code|ZM|
|country_code|ZW|
|Representative Role|ubo|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|business_type|individual_or_sole_proprietorship|
|business_type|private_corporation|
|business_type|limited_liability_corporation|
|business_type|publicly_traded_corporation|
|business_type|limited_partnership|
|business_type|non_profit_entity|
|business_type|government_agency|
|business_type|regulated_financial_institution|
|business_type|sec_registered_entity|
|business_type|cftc_registered_entity|
|currency|USD|
|type|bank_statement|

<h2 id="tocS_USSoleTraderLite2-0">USSoleTraderLite2-0</h2>
<!-- backwards compatibility -->
<a id="schemaussoletraderlite2-0"></a>
<a id="schema_USSoleTraderLite2-0"></a>
<a id="tocSussoletraderlite2-0"></a>
<a id="tocsussoletraderlite2-0"></a>

```json
{
  "reference": "string",
  "status": "string",
  "is_draft": true,
  "profile": {
    "urls": [
      "http://example.com"
    ],
    "mccs": [
      "string"
    ]
  },
  "contact_details": {
    "phone": {
      "number": 2000000000
    },
    "email_addresses": {
      "primary": null
    },
    "invitee": {
      "email": null
    }
  },
  "capabilities": {},
  "requirements_due": [
    {
      "field": "string",
      "reason": "string"
    }
  ],
  "instruments": [
    {}
  ],
  "documents": {
    "identity_verification": {
      "type": "passport",
      "front": "stringstringstringstringstrings",
      "back": "stringstringstringstringstrings"
    }
  },
  "individual": {
    "trading_name": "string",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "date_of_birth": {
      "day": 1,
      "month": 1,
      "year": 1900
    },
    "registered_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "AL",
      "zip": "string",
      "country": "st"
    },
    "identification": {
      "national_id_number": "stringstr"
    },
    "financial_details": {
      "annual_processing_volume": 0,
      "average_transaction_value": 0,
      "highest_transaction_value": 0,
      "currency": "USD"
    }
  }
}

```

US Sole Trader - Lite (2.0)

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|true|none|A unique reference you can later use to identify the sub-entity.|
|status|string|false|read-only|none|
|is_draft|boolean|false|write-only|Specifies whether the sub-entity details are in draft.<br><br>Marking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.|
|profile|object|true|none|Information about the profile of the sub-entity, primarily regarding the products/services offered.|
|» urls|[string]|true|none|A collection of website URLs the sub-entity accepts payments on.|
|»» Company website URL|string(uri)|false|none|The URL of the company's website.|
|» mccs|[any]|true|none|Select the categories that most closely describe the business|
|»» Merchant category code|number|false|none|The merchant category code (4-digit ISO 18245).|
|contact_details|object|true|none|none|
|» phone|object|true|none|none|
|»» number|any|true|none|Include the area code|
|» email_addresses|object|true|none|none|
|»» primary|any|true|none|The main email address for this sub-entity.|
|» invitee|object|false|none|none|
|»» email|any|false|none|The main email address for this sub-entity.|
|capabilities|object|false|read-only|The capabilities of the entity.|
|requirements_due|[object]|false|read-only|List of requirements due in order to be onboarded.|
|» Requirements due entry|object|false|read-only|A list of fields which require attention|
|»» field|string|false|none|The field that is needs to be addressed.|
|»» reason|string|false|none|The reason behind the field needing attention.|
|instruments|[object]|false|read-only|none|
|documents|object|false|none|A legal document used to verify identity.|
|» identity_verification|object|true|none|The document to use to confirm the individual's identity.|
|»» type|string|true|none|The type of document used for identity verification|
|»» front|string|true|none|The ID of the front side of the document as represented within Checkout.com systems.|
|»» back|string|false|none|The ID of the back side of the document as represented within Checkout.com systems.|
|individual|object|true|none|Information about the individual represented by the sub-entity.|
|» trading_name|string|true|none|The trading name of the sub-entity, also referred to as 'doing business as'.|
|» first_name|string|true|none|The representative's first name.|
|» middle_name|string|false|none|The representative's middle name. Required if appears in official docs|
|» last_name|string|true|none|The representative's last name.|
|» date_of_birth|object|true|none|The date of birth of the person according to the Gregorian calendar.|
|»» day|integer|true|none|The calendar day of the month they were born.|
|»» month|integer|true|none|The month of the year they were born.|
|»» year|integer|true|none|The year they were born.|
|» registered_address|object|true|none|The registered address of the company.|
|»» address_line1|string|true|none|The first line of the address.|
|»» address_line2|number|false|none|The second line of the address.|
|»» city|string|true|none|The address city.|
|»» state|string|true|none|The address state. This field is required for addresses based in the US. For US addresses, provide the state as an ISO 3166-1 code.|
|»» zip|string|true|none|The address zip/postal code.|
|»» country|string(iso-3166-1-alpha-2)|true|none|The country code (iso-3166-1 alpha-2)|
|» identification|object|false|none|Information about representatives of this company.|
|»» national_id_number|number|true|none|Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens|
|» financial_details|object|false|none|Seller financial questions and supporting documents.|
|»» annual_processing_volume|integer|false|none|The estimated annual processing volume. In minor units without decimals.|
|»» average_transaction_value|integer|false|none|The expected average transaction value. In minor units without decimals.|
|»» highest_transaction_value|integer|false|none|The expected highest transaction value. In minor units without decimals.|
|»» currency|string|false|none|The currency used for the processing details provided.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|national_identity_card|
|type|driving_license|
|type|citizen_card|
|type|residence_permit|
|type|electoral_id|
|state|AL|
|state|AK|
|state|AZ|
|state|AR|
|state|CA|
|state|CO|
|state|CT|
|state|DE|
|state|DC|
|state|FL|
|state|GA|
|state|HI|
|state|ID|
|state|IL|
|state|IN|
|state|IA|
|state|KS|
|state|KY|
|state|LA|
|state|ME|
|state|MD|
|state|MA|
|state|MI|
|state|MN|
|state|MS|
|state|MO|
|state|MT|
|state|NE|
|state|NV|
|state|NH|
|state|NJ|
|state|NM|
|state|NY|
|state|NC|
|state|ND|
|state|OH|
|state|OK|
|state|OR|
|state|PA|
|state|RI|
|state|SC|
|state|SD|
|state|TN|
|state|TX|
|state|UT|
|state|VT|
|state|VA|
|state|WA|
|state|WV|
|state|WI|
|state|WY|
|state|AS|
|state|GU|
|state|MP|
|state|PR|
|state|VI|
|state|UM|
|currency|USD|

<h2 id="tocS_PreconditionRequiredError">PreconditionRequiredError</h2>
<!-- backwards compatibility -->
<a id="schemapreconditionrequirederror"></a>
<a id="schema_PreconditionRequiredError"></a>
<a id="tocSpreconditionrequirederror"></a>
<a id="tocspreconditionrequirederror"></a>

```json
{
  "status": "428"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|false|none|none|

<h2 id="tocS_Purpose">Purpose</h2>
<!-- backwards compatibility -->
<a id="schemapurpose"></a>
<a id="schema_Purpose"></a>
<a id="tocSpurpose"></a>
<a id="tocspurpose"></a>

```json
"donations"

```

The purpose of the payment.
This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).
See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The purpose of the payment.<br>This field might be required for AFT transactions depending on the card's `issuer_country`. To view a card's `issuer_country`, [retrieve the card's metadata](https://api-reference.checkout.com/#operation/requestCardMetadata!c=200&path=issuer_country&t=response).<br>See the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|donations|
|*anonymous*|education|
|*anonymous*|emergency_need|
|*anonymous*|expatriation|
|*anonymous*|family_support|
|*anonymous*|financial_services|
|*anonymous*|gifts|
|*anonymous*|income|
|*anonymous*|insurance|
|*anonymous*|investment|
|*anonymous*|it_services|
|*anonymous*|leisure|
|*anonymous*|loan_payment|
|*anonymous*|medical_treatment|
|*anonymous*|other|
|*anonymous*|pension|
|*anonymous*|royalties|
|*anonymous*|savings|
|*anonymous*|travel_and_tourism|

<h2 id="tocS_AccountResponse">AccountResponse</h2>
<!-- backwards compatibility -->
<a id="schemaaccountresponse"></a>
<a id="schema_AccountResponse"></a>
<a id="tocSaccountresponse"></a>
<a id="tocsaccountresponse"></a>

```json
{
  "client_id": "cli_bvaelhppmfiufdnatam37wrfc4",
  "entity_id": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
}

```

The client and entity details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|client_id|string|false|none|The client ID.|
|entity_id|string|false|none|The entity ID.|

<h2 id="tocS_FileResponse">FileResponse</h2>
<!-- backwards compatibility -->
<a id="schemafileresponse"></a>
<a id="schema_FileResponse"></a>
<a id="tocSfileresponse"></a>
<a id="tocsfileresponse"></a>

```json
{
  "id": "file_7ysmgfkj4ipunduud22uf73iey",
  "filename": "financial-actions_ent_znj4ih5kn4fuxiaquoudv5mvwy_20220218_000000001drl_1.csv",
  "format": "CSV",
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4/files/file_lmmldzousk7etoqijqundqexa4"
    }
  }
}

```

Details of a file from the response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The file ID.|
|filename|string|false|none|The file name.|
|format|string|false|none|The file format.|
|_links|object|false|none|The link to retrieve the file from.|
|» self|[Link](#schemalink)|false|none|The self object.|

<h2 id="tocS_ReportErrorResponse">ReportErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemareporterrorresponse"></a>
<a id="schema_ReportErrorResponse"></a>
<a id="tocSreporterrorresponse"></a>
<a id="tocsreporterrorresponse"></a>

```json
{
  "request_id": "0HMJGFVAQ35TL:00000117",
  "error_type": "string",
  "error_codes": [
    "string"
  ]
}

```

Error Response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|Request Id|
|error_type|string|false|none|The type of error. <br/> • invalid_request = Usually with an http status code 422. The request payload failed validation. <br/> • not_found = Usually with an http status code 404. The requested resource was not found. <br/>|
|error_codes|[string]|false|none|Error response code. Full list of error codes below: <br/> • invalid_some_field = Usually with an error type `invalid_request` and http status code 422 Unprocessable entity. The field `some_field` failed validation. Please consult the API spec. <br/> • some_resource_not_found = Usually with an error type `not_found`. The resource you are trying to get does not exist. <br/>|

<h2 id="tocS_ReportListResponse">ReportListResponse</h2>
<!-- backwards compatibility -->
<a id="schemareportlistresponse"></a>
<a id="schema_ReportListResponse"></a>
<a id="tocSreportlistresponse"></a>
<a id="tocsreportlistresponse"></a>

```json
{
  "count": 1,
  "limit": 5,
  "data": [
    {
      "id": "rpt_lmmldzousk7etoqijqundqexa4",
      "created_on": "2022-02-18T13:00:12.357Z",
      "last_modified_on": "2022-02-18T13:16:12.357Z",
      "type": "Authentication",
      "description": "Reconciliation Report for X.",
      "account": {
        "client_id": "cli_bvaelhppmfiufdnatam37wrfc4",
        "entity_id": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
      },
      "tags": [
        "payout_id:pay_123456789"
      ],
      "from": "2022-02-17T12:00:00Z",
      "to": "2022-02-18T12:00:00Z",
      "files": [
        {
          "id": "file_7ysmgfkj4ipunduud22uf73iey",
          "filename": "financial-actions_ent_znj4ih5kn4fuxiaquoudv5mvwy_20220218_000000001drl_1.csv",
          "format": "CSV",
          "_links": {
            "self": {
              "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4/files/file_lmmldzousk7etoqijqundqexa4"
            }
          }
        }
      ],
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/reports?entity_id=ent_znj4ih5kn4fuxiaquoudv5mvwy&created_after=2022-02-17T00:00:00.000Z&limit=5"
    },
    "next": {
      "href": "https://{prefix}.api.checkout.com/reports?pagination_token=NaZMwq3KbreYcXg0dg752Dg8ps4orkwVK9pj9WFzkXk8rPoR32Wf74QWX0EkZ&entity_id=ent_znj4ih5kn4fuxiaquoudv5mvwy&created_after=2022-02-17T00:00:00.000Z&limit=5"
    }
  }
}

```

The list of reports in the response.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|count|integer(int32)|false|none|The total number of reports on the current page.|
|limit|integer(int32)|false|none|The maximum number of results included per page.|
|data|[[ReportResponse](#schemareportresponse)]|false|none|The list of reports from the current page.|
|_links|object|false|none|The links object.|
|» self|[Link](#schemalink)|false|none|The self object.|
|» next|[Link](#schemalink)|false|none|The next object.|

<h2 id="tocS_ReportResponse">ReportResponse</h2>
<!-- backwards compatibility -->
<a id="schemareportresponse"></a>
<a id="schema_ReportResponse"></a>
<a id="tocSreportresponse"></a>
<a id="tocsreportresponse"></a>

```json
{
  "id": "rpt_lmmldzousk7etoqijqundqexa4",
  "created_on": "2022-02-18T13:00:12.357Z",
  "last_modified_on": "2022-02-18T13:16:12.357Z",
  "type": "Authentication",
  "description": "Reconciliation Report for X.",
  "account": {
    "client_id": "cli_bvaelhppmfiufdnatam37wrfc4",
    "entity_id": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
  },
  "tags": [
    "payout_id:pay_123456789"
  ],
  "from": "2022-02-17T12:00:00Z",
  "to": "2022-02-18T12:00:00Z",
  "files": [
    {
      "id": "file_7ysmgfkj4ipunduud22uf73iey",
      "filename": "financial-actions_ent_znj4ih5kn4fuxiaquoudv5mvwy_20220218_000000001drl_1.csv",
      "format": "CSV",
      "_links": {
        "self": {
          "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4/files/file_lmmldzousk7etoqijqundqexa4"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4"
    }
  }
}

```

Report response details.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The report ID.|
|created_on|string(date-time)|false|none|The date and time the report was created.|
|last_modified_on|string(date-time)|false|none|The date the report was last modified.|
|type|string|false|none|The report type.|
|description|string|false|none|The report description.|
|account|[AccountResponse](#schemaaccountresponse)|false|none|The client and entity details.|
|tags|[string]|false|none|The list of tags for filtering.|
|from|string(date-time)|false|none|The reporting period's start date and time.|
|to|string(date-time)|false|none|The reporting period's end date and time.|
|files|[[FileResponse](#schemafileresponse)]|false|none|The list of files included in the report.|
|_links|object|false|none|The links object.|
|» self|[Link](#schemalink)|false|none|The self object.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|Authentication|
|type|Balance|
|type|BalanceBreakdown|
|type|BankPayouts|
|type|CardPayouts|
|type|Disputes|
|type|FinancialActions|
|type|FinancialActionsByPayout|
|type|FraudDetection|
|type|IssuingAuthorizations|
|type|IssuingCards|
|type|IssuingChargebacks|
|type|IssuingPresentments|
|type|IssuingSettlementActivity|
|type|IssuingSettlementSummary|
|type|Manifest|
|type|Payments|
|type|PayoutSummary|
|type|RealTimeAccountUpdater|
|type|ReportedFraudulentTransactions|
|type|Retrievals|
|type|SettlementBreakdown|
|type|SettlementStatement|

<h2 id="tocS_CardSourcePrism">CardSourcePrism</h2>
<!-- backwards compatibility -->
<a id="schemacardsourceprism"></a>
<a id="schema_CardSourcePrism"></a>
<a id="tocScardsourceprism"></a>
<a id="tocscardsourceprism"></a>

```json
{
  "type": "card",
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|number|string|true|none|The card number (without separators)|
|expiry_month|integer|true|none|The expiry month of the card|
|expiry_year|integer|true|none|The expiry year of the card|
|name|string|false|none|The name of the cardholder|
|billing_address|[Address](#schemaaddress)|false|none|The billing address of the cardholder|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The phone number of the cardholder|

<h2 id="tocS_CustomerSourcePrism">CustomerSourcePrism</h2>
<!-- backwards compatibility -->
<a id="schemacustomersourceprism"></a>
<a id="schema_CustomerSourcePrism"></a>
<a id="tocScustomersourceprism"></a>
<a id="tocscustomersourceprism"></a>

```json
{
  "type": "customer",
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
}

```

customer

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|id|string|true|none|The customer's identifier.|

<h2 id="tocS_IdSourcePrism">IdSourcePrism</h2>
<!-- backwards compatibility -->
<a id="schemaidsourceprism"></a>
<a id="schema_IdSourcePrism"></a>
<a id="tocSidsourceprism"></a>
<a id="tocsidsourceprism"></a>

```json
{
  "type": "id",
  "id": "src_wmlfc3zyhqzehihu7giusaaawu",
  "cvv": "956"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|id|string|true|none|The payment source identifier (e.g., a card source identifier)|
|cvv|string|false|none|The card verification value/code (for card sources). 3 digits, except for American Express (4 digits)|

<h2 id="tocS_RiskPaymentRequestSource">RiskPaymentRequestSource</h2>
<!-- backwards compatibility -->
<a id="schemariskpaymentrequestsource"></a>
<a id="schema_RiskPaymentRequestSource"></a>
<a id="tocSriskpaymentrequestsource"></a>
<a id="tocsriskpaymentrequestsource"></a>

```json
{
  "type": "token",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "store_for_future_use": false,
  "account_holder": {}
}

```

The source of the payment.<br>

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[PaymentRequestTokenSource](#schemapaymentrequesttokensource)|false|none|A token payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdSourcePrism](#schemaidsourceprism)|false|none|An existing payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CardSourcePrism](#schemacardsourceprism)|false|none|A card payment source|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CustomerSourcePrism](#schemacustomersourceprism)|false|none|A customer source|

<h2 id="tocS_Segment">Segment</h2>
<!-- backwards compatibility -->
<a id="schemasegment"></a>
<a id="schema_Segment"></a>
<a id="tocSsegment"></a>
<a id="tocssegment"></a>

```json
{
  "brand": "Acme Corporation",
  "business_category": "Inward Payments",
  "market": "UK"
}

```

The dimension details about business segment for payment request. At least one dimension required.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|brand|string|false|none|The brand of business segment.|
|business_category|string|false|none|The category of business segment.|
|market|string|false|none|The market of business segment.|

<h2 id="tocS_ServerTimestamp">ServerTimestamp</h2>
<!-- backwards compatibility -->
<a id="schemaservertimestamp"></a>
<a id="schema_ServerTimestamp"></a>
<a id="tocSservertimestamp"></a>
<a id="tocsservertimestamp"></a>

```json
"2019-08-24T14:15:22Z"

```

Read-only UTC timestamp, automatically assigned by us

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(date-time)|false|read-only|Read-only UTC timestamp, automatically assigned by us|

<h2 id="tocS_SessionsBillingDescriptor">SessionsBillingDescriptor</h2>
<!-- backwards compatibility -->
<a id="schemasessionsbillingdescriptor"></a>
<a id="schema_SessionsBillingDescriptor"></a>
<a id="tocSsessionsbillingdescriptor"></a>
<a id="tocssessionsbillingdescriptor"></a>

```json
{
  "name": "SUPERHEROES.COM"
}

```

An optional dynamic billing descriptor.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|name|string|true|none|A dynamic description of the payment that replaces the Merchant Name that is displayed in 3DS Challenge window. Applies to card payments only. Special characters allowed: `.` `!` `*` `-` `=` `_` `@`|

<h2 id="tocS_SimulatorAvailableRequirement">SimulatorAvailableRequirement</h2>
<!-- backwards compatibility -->
<a id="schemasimulatoravailablerequirement"></a>
<a id="schema_SimulatorAvailableRequirement"></a>
<a id="tocSsimulatoravailablerequirement"></a>
<a id="tocssimulatoravailablerequirement"></a>

```json
{
  "field": "individual.identification.document",
  "type": "string"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|field|string|false|none|The public path of the requirement field.|
|type|string|false|none|The data type of the field.|

<h2 id="tocS_SimulatorErrorResponse">SimulatorErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorerrorresponse"></a>
<a id="schema_SimulatorErrorResponse"></a>
<a id="tocSsimulatorerrorresponse"></a>
<a id="tocssimulatorerrorresponse"></a>

```json
{
  "error_codes": [
    "invalid_status"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error_codes|[string]|false|none|Error codes describing what went wrong.|

<h2 id="tocS_SimulatorRunScenarioResponse">SimulatorRunScenarioResponse</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorrunscenarioresponse"></a>
<a id="schema_SimulatorRunScenarioResponse"></a>
<a id="tocSsimulatorrunscenarioresponse"></a>
<a id="tocssimulatorrunscenarioresponse"></a>

```json
{
  "entity_id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "scenario_id": "go_active",
  "scenario_name": "Go Active",
  "previous_status": "RequirementsDue",
  "current_status": "Active",
  "requirements_due": [
    "individual.identification.document"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|entity_id|string|false|none|The ID of the entity.|
|scenario_id|string|false|none|The ID of the scenario that was run.|
|scenario_name|string|false|none|The name of the scenario that was run.|
|previous_status|string|false|none|The entity status before the scenario ran.|
|current_status|string|false|none|The entity status after the scenario ran.|
|requirements_due|[string]|false|none|Requirement fields applied by the scenario, if any.|

<h2 id="tocS_SimulatorScenario">SimulatorScenario</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorscenario"></a>
<a id="schema_SimulatorScenario"></a>
<a id="tocSsimulatorscenario"></a>
<a id="tocssimulatorscenario"></a>

```json
{
  "id": "go_active",
  "name": "Go Active",
  "description": "Transitions the entity to active status.",
  "action": "set_status",
  "status": "active",
  "requirements_due": [
    "individual.identification.document"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The unique identifier of the scenario.|
|name|string|false|none|Human-readable name of the scenario.|
|description|string|false|none|Description of what the scenario does.|
|action|string|false|none|The action type performed by this scenario.|
|status|string|false|none|The resulting entity status after the scenario runs. Empty string for non-status actions.|
|requirements_due|[string]|false|none|Requirement fields applied when the scenario runs, if any.|

<h2 id="tocS_SimulatorSetRequirementsDueRequest">SimulatorSetRequirementsDueRequest</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorsetrequirementsduerequest"></a>
<a id="schema_SimulatorSetRequirementsDueRequest"></a>
<a id="tocSsimulatorsetrequirementsduerequest"></a>
<a id="tocssimulatorsetrequirementsduerequest"></a>

```json
{
  "fields": [
    "individual.identification.document"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|fields|[string]|true|none|The requirement fields to mark as due. <br/><br>Call the [List available requirements](/#tag/Onboarding-Simulator/paths/~1simulate~1requirements-due/get) endpoint for a list of valid values.|

<h2 id="tocS_SimulatorSetRequirementsDueResponse">SimulatorSetRequirementsDueResponse</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorsetrequirementsdueresponse"></a>
<a id="schema_SimulatorSetRequirementsDueResponse"></a>
<a id="tocSsimulatorsetrequirementsdueresponse"></a>
<a id="tocssimulatorsetrequirementsdueresponse"></a>

```json
{
  "entity_id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "previous_status": "Active",
  "current_status": "requirements_due",
  "requirements_due": [
    "individual.identification.document"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|entity_id|string|false|none|The ID of the entity.|
|previous_status|string|false|none|The status before the update.|
|current_status|string|false|none|The status after the update.|
|requirements_due|[string]|false|none|The requirement fields that are now marked as due.|

<h2 id="tocS_SimulatorSetStatusRequest">SimulatorSetStatusRequest</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorsetstatusrequest"></a>
<a id="schema_SimulatorSetStatusRequest"></a>
<a id="tocSsimulatorsetstatusrequest"></a>
<a id="tocssimulatorsetstatusrequest"></a>

```json
{
  "status": "active"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|true|none|The status to set on the entity.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|draft|
|status|requirements_due|
|status|pending|
|status|active|
|status|restricted|
|status|rejected|
|status|inactive|

<h2 id="tocS_SimulatorSetStatusResponse">SimulatorSetStatusResponse</h2>
<!-- backwards compatibility -->
<a id="schemasimulatorsetstatusresponse"></a>
<a id="schema_SimulatorSetStatusResponse"></a>
<a id="tocSsimulatorsetstatusresponse"></a>
<a id="tocssimulatorsetstatusresponse"></a>

```json
{
  "entity_id": "ent_w4jelhppmfiufdnatam37wrfc4",
  "previous_status": "Pending",
  "current_status": "Active"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|entity_id|string|false|none|The ID of the entity.|
|previous_status|string|false|none|The status before the update.|
|current_status|string|false|none|The status after the update.|

<h2 id="tocS_Acs">Acs</h2>
<!-- backwards compatibility -->
<a id="schemaacs"></a>
<a id="schema_Acs"></a>
<a id="tocSacs"></a>
<a id="tocsacs"></a>

```json
{
  "reference_number": "ACSRefNum1234",
  "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
  "operator_id": "ACSRefNum1234",
  "url": "https://server.acsdomainname.com",
  "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
  "challenge_mandated": true,
  "authentication_type": "string",
  "challenge_cancel_reason": "cardholder_cancel",
  "interface": "native_ui",
  "ui_template": "text",
  "challenge_cancel_reason_code": "string"
}

```

The access control server (ACS) information. Can be empty if the session is still pending or if communication with the ACS failed. This will be available when the channel data and issuer fingerprint result have been provided.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference_number|string|true|none|EMVCo-assigned unique identifier to track approved ACS|
|transaction_id|string|true|none|Universally unique transaction identifier assigned by the ACS|
|operator_id|string|true|none|DS assigned ACS identifier|
|url|string|false|none|Fully qualified URL of the ACS to be used for the challenge|
|signed_content|string|false|none|Contains the JSON web signature (JWS) compact serialization created by the ACS for a challenged app authentication. (Example has been truncated for readability.)|
|challenge_mandated|boolean|true|none|Indicates whether a challenge is required for the transaction to be authorized|
|authentication_type|string|false|none|The type of authentication as returned from the ACS provider. <br/> • 01 = Static <br/> • 02 = Dynamic <br/> • 03 = OOB <br/> • 04-79 = Reserved for EMVCo future use <br/> • 80-99 = Reserved for DS use|
|challenge_cancel_reason|string|false|none|Indicator informing the ACS and the DS that the authentication has been cancelled|
|interface|string|false|none|none|
|ui_template|string|false|none|none|
|challenge_cancel_reason_code|string|false|none|Indicator in the 3D Secure 2 RReq when the challenge is cancelled|

#### Enumerated Values

|Property|Value|
|---|---|
|challenge_cancel_reason|cardholder_cancel|
|challenge_cancel_reason|transaction_timed_out|
|challenge_cancel_reason|challenge_timed_out|
|challenge_cancel_reason|transaction_error|
|challenge_cancel_reason|unknown|
|challenge_cancel_reason|sdk_timed_out|
|interface|native_ui|
|interface|html|
|ui_template|text|
|ui_template|single_select|
|ui_template|multi_select|
|ui_template|oob|
|ui_template|html_other|

<h2 id="tocS_Amount">Amount</h2>
<!-- backwards compatibility -->
<a id="schemaamount"></a>
<a id="schema_Amount"></a>
<a id="tocSamount"></a>
<a id="tocsamount"></a>

```json
120

```

The amount in the minor currency.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|integer(int64)|false|none|The amount in the minor currency.|

<h2 id="tocS_App">App</h2>
<!-- backwards compatibility -->
<a id="schemaapp"></a>
<a id="schema_App"></a>
<a id="tocSapp"></a>
<a id="tocsapp"></a>

```json
{
  "channel": "app",
  "sdk_app_id": "dbd64fcb-c19a-4728-8849-e3d50bfdde39",
  "sdk_max_timeout": 5,
  "sdk_ephem_pub_key": {
    "kty": "EC",
    "crv": "P-256",
    "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
    "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
  },
  "sdk_reference_number": "3DS_LOA_SDK_PPFU_020100_00007",
  "sdk_encrypted_data": "<device-information>",
  "sdk_transaction_id": "b2385523-a66c-4907-ac3c-91848e8c0067",
  "sdk_interface_type": "native",
  "sdk_ui_elements": [
    "text"
  ]
}

```

app

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|channel|string|true|none|none|
|sdk_app_id|string|true|none|Universally unique ID created upon all installations and updates of the 3DS Requestor App on a consumer device. This will be newly generated and stored by the 3DS SDK for each installation or update.|
|sdk_max_timeout|integer|true|none|Indicates maximum amount of time (in minutes) for all exchanges|
|sdk_ephem_pub_key|[SdkEphemeralPublicKey](#schemasdkephemeralpublickey)|true|none|Public key component of the ephemeral key pair generated by the 3DS SDK and used to establish session keys between the 3DS SDK and ACS. Refer to https://tools.ietf.org/html/rfc7517#appendix-A.1|
|sdk_reference_number|string|true|none|Identifies the vendor and version for the 3DS SDK that is integrated in a 3DS Requestor App, assigned by EMVCo when the 3DS SDK is approved.|
|sdk_encrypted_data|string|true|none|A JSON web encryption (JWE) object in compact serialization, containing data encrypted by the SDK for the Directory Server to decrypt.|
|sdk_transaction_id|string|true|none|Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction|
|sdk_interface_type|string|true|none|Lists all of the SDK interface types that the device supports for displaying specific challenge user interfaces within the SDK|
|sdk_ui_elements|[string]|true|none|Lists all the user interface elements that the cardholder's device supports for displaying specific challenge user interfaces within the SDK|

#### Enumerated Values

|Property|Value|
|---|---|
|channel|app|
|sdk_interface_type|native|
|sdk_interface_type|html|
|sdk_interface_type|both|

<h2 id="tocS_Approved">Approved</h2>
<!-- backwards compatibility -->
<a id="schemaapproved"></a>
<a id="schema_Approved"></a>
<a id="tocSapproved"></a>
<a id="tocsapproved"></a>

```json
false

```

Whether the authentication was successful. This will only be set if the Session is in a final state

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|boolean|false|none|Whether the authentication was successful. This will only be set if the Session is in a final state|

<h2 id="tocS_AuthenticationType">AuthenticationType</h2>
<!-- backwards compatibility -->
<a id="schemaauthenticationtype"></a>
<a id="schema_AuthenticationType"></a>
<a id="tocSauthenticationtype"></a>
<a id="tocsauthenticationtype"></a>

```json
"regular"

```

Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|regular|
|*anonymous*|recurring|
|*anonymous*|installment|
|*anonymous*|maintain_card|
|*anonymous*|add_card|

<h2 id="tocS_Browser">Browser</h2>
<!-- backwards compatibility -->
<a id="schemabrowser"></a>
<a id="schema_Browser"></a>
<a id="tocSbrowser"></a>
<a id="tocsbrowser"></a>

```json
{
  "channel": "browser",
  "three_ds_method_completion": "U",
  "accept_header": "Accept:  *.*, q=0.1",
  "java_enabled": true,
  "javascript_enabled": true,
  "language": "FR-fr",
  "color_depth": "16",
  "screen_height": "1080",
  "screen_width": "1920",
  "timezone": "60",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
  "ip_address": "1.12.123.255",
  "iframe_payment_allowed": true,
  "user_agent_client_hint": "'Sec-CH-UA: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\"'\n"
}

```

browser

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|channel|string|true|none|none|
|three_ds_method_completion|string|false|none|Indicates whether the 3DS Method successfully completed<br/> • Y = Successfully completed <br/> • N = Did not successfully complete <br/> • U = Unavailable (3DS Method URL was not present in the preparation response (PRes) message data for the card range associated with the cardholder's account number)|
|accept_header|string|true|none|Exact content of the HTTP accept headers as sent to the 3DS Requestor from the cardholder’s browser|
|java_enabled|boolean|true|none|Boolean that represents the ability of the cardholder's browser to execute Java. Value is returned from the `navigator.javaEnabled` property.|
|javascript_enabled|boolean|true|none|Boolean that represents the ability of the cardholder's browser to execute Javascript. Value is returned from the `navigator.javascriptEnabled` property.             *only applicable/required for authentication performed using 3DS 2.2. If authentications results in processing on 2.1 or lower, this field will be disregarded.|
|language|string|true|none|Value representing the browser language as defined in IETF BCP47. Returned from the `navigator.language` property.|
|color_depth|string|true|none|Value representing the bit depth of the color palette for displaying images, in bits per pixel. Obtained from the cardholder's browser from the `screen.colorDepth` property.|
|screen_height|string|true|none|Total height of the cardholder’s screen in pixels. Value is returned from the `screen.height` property.|
|screen_width|string|true|none|Total width of the cardholder’s screen in pixels. Value is returned from the `screen.width` property.|
|timezone|string|true|none|Time difference between UTC time and the local time of the cardholder's browser, in minutes.|
|user_agent|string|true|none|Exact content of the HTTP user-agent header|
|ip_address|string|true|none|IP address of the browser as returned by the HTTP headers to the 3DS Requestor|
|iframe_payment_allowed|boolean|false|none|Whether the Payment API is enabled for all parent frames. This is required for Google SPA support in hosted sessions.|
|user_agent_client_hint|string|false|none|The raw Sec-CH-UA header value. This can improve Google SPA support.|

#### Enumerated Values

|Property|Value|
|---|---|
|channel|browser|
|three_ds_method_completion|Y|
|three_ds_method_completion|N|
|three_ds_method_completion|U|

<h2 id="tocS_CardholderAccountInfo">CardholderAccountInfo</h2>
<!-- backwards compatibility -->
<a id="schemacardholderaccountinfo"></a>
<a id="schema_CardholderAccountInfo"></a>
<a id="tocScardholderaccountinfo"></a>
<a id="tocscardholderaccountinfo"></a>

```json
{
  "purchase_count": 10,
  "account_age": "no_account",
  "add_card_attempts": 10,
  "shipping_address_age": "this_transaction",
  "account_name_matches_shipping_name": true,
  "suspicious_account_activity": true,
  "transactions_today": 10,
  "authentication_method": "no_authentication",
  "cardholder_account_age_indicator": "no_account,",
  "account_change": "2019-08-24T14:15:22Z",
  "account_change_indicator": "this_transaction",
  "account_date": "2019-08-24T14:15:22Z",
  "account_password_change": "2019-08-24T14:15:22Z",
  "account_password_change_indicator": "no_change",
  "transactions_per_year": 2,
  "payment_account_age": "2019-08-24T14:15:22Z",
  "shipping_address_usage": "2019-08-24T14:15:22Z",
  "account_type": "not_applicable",
  "account_id": "string",
  "three_ds_requestor_authentication_info": {
    "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
    "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
    "three_ds_req_auth_data": "string"
  }
}

```

Additional information about the Cardholder's account.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|purchase_count|number|false|none|The number of purchases with this cardholder's account during the last six months.|
|account_age|string|false|none|The length of time that the payment account was enrolled in the cardholder's account.|
|add_card_attempts|number|false|none|The number of Add Card attempts in the last 24 hours.|
|shipping_address_age|string|false|none|Indicates when the shipping address used for this transaction was first used.|
|account_name_matches_shipping_name|boolean|false|none|Indicates if the Cardholder Name on the account is identical to the shipping Name used for this transaction.|
|suspicious_account_activity|boolean|false|none|Indicates whether suspicious activity on the cardholder account has been observed.|
|transactions_today|number|false|none|The number of transactions (successful and abandoned) for the cardholder account across all payment accounts in the previous 24 hours|
|authentication_method|string|false|none|Information about how the cardholder was authenticated before or during the transaction.|
|cardholder_account_age_indicator|string|false|none|The length of time the cardholder has held the account with the 3DS Requestor.|
|account_change|string(date-time)|false|none|The UTC date and time the cardholder’s account with the 3DS Requestor was last changed, in ISO 8601 format.<br><br>Changes that affect this value include:<br>- updating the billing or shipping address<br>- adding a new payment account<br>- adding a new user|
|account_change_indicator|string|false|none|The amount of time since the cardholder’s account information with the 3DS Requestor was last changed.<br><br>Changes that affect this value include:<br>- updating the billing or shipping address<br>- adding a new payment account<br>- adding a new user|
|account_date|string(date-time)|false|none|The UTC date and time the cardholder opened the account with the 3DS Requestor, in ISO 8601 format.|
|account_password_change|string(date-time)|false|none|The UTC date and time the cardholder’s account with the 3DS Requestor was last reset or had a password change, in ISO 8601 format.|
|account_password_change_indicator|string|false|none|The amount of time since the cardholder’s account with the 3DS Requestor was last reset or had a password change.|
|transactions_per_year|integer|false|none|The number of transactions associated with the cardholder's account with the 3DS Requestor in the previous year. This value includes both successful and abandoned transactions, across all payment accounts. <br><br>Set this value to `999` if the number of transactions is `1000` or greater.|
|payment_account_age|string(date-time)|false|none|The UTC date and time the payment account was enrolled in the cardholder’s account with the 3DS Requestor, in ISO 8601 format.|
|shipping_address_usage|string(date-time)|false|none|The UTC date and time the shipping address used for the transaction was first used with the 3DS Requestor, in ISO 8601 format.|
|account_type|string|false|none|The type of account, in the case of a card product with multiple accounts.|
|account_id|string|false|none|Additional information about the account optionally provided by the 3DS Requestor.|
|three_ds_requestor_authentication_info|[ThreeDsRequestorAuthenticationInfo](#schemathreedsrequestorauthenticationinfo)|false|none|Information about how the 3DS Requestor authenticated the cardholder before or during the transaction.|

#### Enumerated Values

|Property|Value|
|---|---|
|account_age|no_account|
|account_age|created_during_transaction|
|account_age|less_than_thirty_days|
|account_age|thirty_to_sixty_days|
|account_age|more_than_sixty_days|
|shipping_address_age|this_transaction|
|shipping_address_age|less_than_thirty_days|
|shipping_address_age|thirty_to_sixty_days|
|shipping_address_age|more_than_sixty_days|
|authentication_method|no_authentication|
|authentication_method|own_credentials|
|authentication_method|federated_id|
|authentication_method|issuer_credentials|
|authentication_method|third_party_authentication|
|authentication_method|fido|
|cardholder_account_age_indicator|no_account,|
|cardholder_account_age_indicator|this_transaction|
|cardholder_account_age_indicator|less_than_thirty_days|
|cardholder_account_age_indicator|thirty_to_sixty_days|
|cardholder_account_age_indicator|more_than_sixty_days|
|account_change_indicator|this_transaction|
|account_change_indicator|less_than_thirty_days|
|account_change_indicator|thirty_to_sixty_days|
|account_change_indicator|more_than_sixty_days|
|account_password_change_indicator|no_change|
|account_password_change_indicator|this_transaction|
|account_password_change_indicator|less_than_thirty_days|
|account_password_change_indicator|thirty_to_sixty_days|
|account_password_change_indicator|more_than_sixty_days|
|account_type|not_applicable|
|account_type|credit|
|account_type|debit|

<h2 id="tocS_CardInfo">CardInfo</h2>
<!-- backwards compatibility -->
<a id="schemacardinfo"></a>
<a id="schema_CardInfo"></a>
<a id="tocScardinfo"></a>
<a id="tocscardinfo"></a>

```json
{
  "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
  "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
  "metadata": {
    "card_type": "CREDIT",
    "card_category": "CONSUMER",
    "issuer_name": "Checkout",
    "issuer_country": "GB",
    "product_id": "MDS",
    "product_type": "Debit MasterCard® Card"
  }
}

```

Details related to the Session source. This property should always be in the response, unless a `card` source was used and communication with Checkout.com's Vault was not possible.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|instrument_id|string|true|none|The identifier of the card instrument.|
|fingerprint|string|true|none|A token that can uniquely identify this card across all customers.|
|metadata|object|false|none|Additional details for this card|
|» card_type|string|false|none|The card type|
|» card_category|string|false|none|The card category.|
|» issuer_name|string|false|none|The card issuer's name.|
|» issuer_country|string|false|none|The two letter alpha country code of the card issuer.|
|» product_id|string|false|none|The issuer/card scheme product identifier.|
|» product_type|string|false|none|The issuer/card scheme product type.|

#### Enumerated Values

|Property|Value|
|---|---|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|

<h2 id="tocS_CardSource">CardSource</h2>
<!-- backwards compatibility -->
<a id="schemacardsource"></a>
<a id="schema_CardSource"></a>
<a id="tocScardsource"></a>
<a id="tocscardsource"></a>

```json
{
  "type": "card",
  "scheme": "amex",
  "number": "4242424242424242",
  "expiry_month": 12,
  "expiry_year": 2077,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "home_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "mobile_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "work_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "email": "bruce.wayne@email.com",
  "name": "Bruce Wayne",
  "stored": true
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|scheme|string|false|none|Indicates the cardholder scheme choice|
|number|string|true|none|The card number.|
|expiry_month|integer|true|none|The expiry month of the card.|
|expiry_year|integer|true|none|The expiry year of the card.|
|billing_address|[SessionAddress](#schemasessionaddress)|false|none|The customer's billing address. Any special characters will be replaced.|
|home_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's home phone number|
|mobile_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's mobile phone number|
|work_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's work phone number|
|email|string|false|none|The email of the cardholder|
|name|string|false|none|The name of the cardholder. Any special characters will be replaced.|
|stored|boolean|false|none|Indicates whether this card is being submitted from your own stored card-on-file system, rather than being entered by the customer at the time of payment. Set to `true` when you provide card details that you already have on file for the customer.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|amex|
|scheme|cartes_bancaires|
|scheme|diners|
|scheme|mastercard|
|scheme|visa|
|scheme|discover|
|scheme|upi|
|scheme|jcb|

<h2 id="tocS_Category">Category</h2>
<!-- backwards compatibility -->
<a id="schemacategory"></a>
<a id="schema_Category"></a>
<a id="tocScategory"></a>
<a id="tocscategory"></a>

```json
"payment"

```

Indicates the category of the authentication request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Indicates the category of the authentication request|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|payment|
|*anonymous*|non_payment|

<h2 id="tocS_ChallengeIndicator">ChallengeIndicator</h2>
<!-- backwards compatibility -->
<a id="schemachallengeindicator"></a>
<a id="schema_ChallengeIndicator"></a>
<a id="tocSchallengeindicator"></a>
<a id="tocschallengeindicator"></a>

```json
"no_preference"

```

Indicates whether a challenge is requested for this session.<br/> <br/> The following are requests for exemption: <br/> • `low_value` <br/> • `trusted_listing` <br/> • `trusted_listing_prompt` <br/> • `transaction_risk_assessment` <br/><br/>
If an exemption cannot be applied, then the value `no_challenge_requested` will be used instead.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Indicates whether a challenge is requested for this session.<br/> <br/> The following are requests for exemption: <br/> • `low_value` <br/> • `trusted_listing` <br/> • `trusted_listing_prompt` <br/> • `transaction_risk_assessment` <br/><br/><br>If an exemption cannot be applied, then the value `no_challenge_requested` will be used instead.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|no_preference|
|*anonymous*|no_challenge_requested|
|*anonymous*|challenge_requested|
|*anonymous*|challenge_requested_mandate|
|*anonymous*|low_value|
|*anonymous*|trusted_listing|
|*anonymous*|trusted_listing_prompt|
|*anonymous*|transaction_risk_assessment|
|*anonymous*|data_share|

<h2 id="tocS_ChannelData">ChannelData</h2>
<!-- backwards compatibility -->
<a id="schemachanneldata"></a>
<a id="schema_ChannelData"></a>
<a id="tocSchanneldata"></a>
<a id="tocschanneldata"></a>

```json
{
  "channel": "browser",
  "accept_header": "Accept:  *.*, q=0.1",
  "java_enabled": true,
  "javascript_enabled": true,
  "language": "FR-fr",
  "color_depth": "16",
  "screen_height": "1080",
  "screen_width": "1920",
  "timezone": "60",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
  "three_ds_method_completion": "Y",
  "ip_address": "1.12.123.255",
  "iframe_payment_allowed": true,
  "user_agent_client_hint": "Sec-CH-UA: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""
}

```

The information gathered from the environment used to initiate the session

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[Browser](#schemabrowser)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[App](#schemaapp)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[MerchantInitiated](#schemamerchantinitiated)|false|none|none|

<h2 id="tocS_CompletionInfo">CompletionInfo</h2>
<!-- backwards compatibility -->
<a id="schemacompletioninfo"></a>
<a id="schema_CompletionInfo"></a>
<a id="tocScompletioninfo"></a>
<a id="tocscompletioninfo"></a>

```json
{
  "type": "non_hosted",
  "callback_url": "https://merchant.com/callback"
}

```

The redirect information needed for callbacks or redirects after the payment is completed

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[HostedCompletionInfo](#schemahostedcompletioninfo)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[NonHostedCompletionInfo](#schemanonhostedcompletioninfo)|false|none|none|

<h2 id="tocS_CreateSessionAcceptedResponse">CreateSessionAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemacreatesessionacceptedresponse"></a>
<a id="schema_CreateSessionAcceptedResponse"></a>
<a id="tocScreatesessionacceptedresponse"></a>
<a id="tocscreatesessionacceptedresponse"></a>

```json
{
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "status": "pending",
  "next_actions": [
    "collect_channel_data"
  ],
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "_links": {
    "redirect_url": {
      "href": "http://3ds2.checkout.com/interceptor/sid_y3oqhf46pyzuxjbcn2giaqnb44"
    },
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "acs_url": {
      "href": "https://api.hsbc.com/challenge"
    },
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "success_url": {
      "href": "string"
    },
    "failure_url": {
      "href": "string"
    },
    "callback_url": {
      "href": "string"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "authentication_date": "2019-08-24T14:15:22Z",
  "challenge_indicator": "no_preference",
  "optimization": {
    "optimized": true,
    "framework": "acceptance_rates",
    "optimized_properties": [
      {
        "field": "challenge_indicator",
        "original_value": "trusted_listing",
        "optimized_value": "transaction_risk_assessment"
      }
    ]
  },
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  },
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "certificates": {
    "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
    "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
    "ca_public_all": [
      "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
    ]
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|session_secret|[SessionSecret](#schemasessionsecret)|true|none|A base64 encoded value prefixed with `sek_` that gives access to client-side operations for a single authentication within the Sessions API.  This value is returned as the `session_secret` when requesting a session.|
|id|[SessionId](#schemasessionid)|true|none|Session unique identifier|
|transaction_id|string|true|none|The transaction identifier that needs to be provided when communicating directly with the Access Control Server (ACS)|
|scheme|string|true|none|Indicates the scheme this authentication is carried out against|
|amount|[Amount](#schemaamount)|true|none|The amount in the minor currency.|
|currency|[Currency](#schemacurrency)|true|none|The three-letter ISO currency code|
|completed|boolean|false|none|Specifies if the session was completed.|
|authentication_type|[AuthenticationType](#schemaauthenticationtype)|true|none|Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.|
|authentication_category|[Category](#schemacategory)|true|none|Indicates the category of the authentication request|
|status|string|true|none|The status of the session.|
|next_actions|[string]|true|none|Specifies which action to take in order to complete the session. <br><br>The `redirect_cardholder` action is only applicable for <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/standalone-sessions/hosted-sessions">hosted sessions</a>.|
|protocol_version|[ProtocolVersion](#schemaprotocolversion)|true|none|The protocol version number of the specification used by the API for authentication|
|account_info|[CardholderAccountInfo](#schemacardholderaccountinfo)|false|none|Additional information about the Cardholder's account.|
|merchant_risk_info|[MerchantRiskInfo](#schemamerchantriskinfo)|false|none|Additional information about the cardholder's purchase.|
|reference|[Reference](#schemareference)|false|none|A reference you can later use to identify this payment, such as an order number. **Do not pass sensitive information in this field e.g. card details**|
|transaction_type|[TransactionType](#schematransactiontype)|false|none|Identifies the type of transaction being authenticated|
|card|[CardInfo](#schemacardinfo)|false|none|Details related to the Session source. This property should always be in the response, unless a `card` source was used and communication with Checkout.com's Vault was not possible.|
|recurring|[Recurring](#schemarecurring)|false|none|Details of a recurring authentication. This property is needed only for a recurring authentication type. Value will be ignored in any other cases.|
|installment|[Installment](#schemainstallment)|false|none|Details of an installment authentication. This property is needed only for an installment authentication type. Value will be ignored in any other cases.|
|initial_transaction|[InitialTransaction](#schemainitialtransaction)|false|none|Details of a previous transaction|
|_links|[CreateSessionLinks](#schemacreatesessionlinks)|true|none|none|
|authentication_date|string(date-time)|true|none|Authentication date and time|
|challenge_indicator|string|true|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge|
|optimization|object|false|none|The information about the optimization options selected|
|» optimized|boolean|false|none|Indicates if any optimization has been applied|
|» framework|string|false|none|The optimization framework applied|
|» optimized_properties|[[OptimizedProperty](#schemaoptimizedproperty)]|false|none|The collection of optimized fields|
|preferred_experiences|[PreferredExperiences](#schemapreferredexperiences)|false|none|Preferred Experiences|
|experience|[Experience](#schemaexperience)|false|none|The authentication experience that was used for processing|
|google_spa|[GoogleSpaInfo](#schemagooglespainfo)|false|none|Details of Google SPA (Secure Payment Authentication)|
|ds|[Ds](#schemads)|false|none|The directory server (DS) information. Can be empty if the session is pending or communication with the DS failed|
|certificates|[DsPublicKeys](#schemadspublickeys)|false|none|Public certificates specific to a Directory Server (DS) for encrypting device data and verifying ACS signed content. Required when channel is `app`.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|visa|
|scheme|mastercard|
|scheme|jcb|
|scheme|amex|
|scheme|diners|
|scheme|cartes_bancaires|
|scheme|discover|
|scheme|upi|
|status|pending|
|status|processing|
|status|challenged|
|status|challenge_abandoned|
|status|expired|
|status|approved|
|status|attempted|
|status|unavailable|
|status|declined|
|status|rejected|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|framework|acceptance_rates|

<h2 id="tocS_CreateSessionLinks">CreateSessionLinks</h2>
<!-- backwards compatibility -->
<a id="schemacreatesessionlinks"></a>
<a id="schema_CreateSessionLinks"></a>
<a id="tocScreatesessionlinks"></a>
<a id="tocscreatesessionlinks"></a>

```json
{
  "redirect_url": {
    "href": "http://3ds2.checkout.com/interceptor/sid_y3oqhf46pyzuxjbcn2giaqnb44"
  },
  "issuer_fingerprint": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
  },
  "collect_channel_data": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
  },
  "three_ds_method_url": {
    "href": "https://api.hsbc.com/3dsmethod?tx=123456"
  },
  "acs_url": {
    "href": "https://api.hsbc.com/challenge"
  },
  "complete": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
  },
  "success_url": {
    "href": "string"
  },
  "failure_url": {
    "href": "string"
  },
  "callback_url": {
    "href": "string"
  },
  "self": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|redirect_url|object|false|none|The link to which the cardholder should be redirected. </br> Only available when the `hosted` value is `true`.|
|» href|string|true|none|none|

<h2 id="tocS_CreateSessionOkResponse">CreateSessionOkResponse</h2>
<!-- backwards compatibility -->
<a id="schemacreatesessionokresponse"></a>
<a id="schema_CreateSessionOkResponse"></a>
<a id="tocScreatesessionokresponse"></a>
<a id="tocscreatesessionokresponse"></a>

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "certificates": {
    "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
    "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
    "ca_public_all": [
      "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
    ]
  },
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "cardholder_info": "Card declined. Please contact your issuing bank.",
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "customer_ip": "192.168.1.1",
  "_links": {
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "acs_url": {
      "href": "https://api.hsbc.com/challenge"
    },
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "success_url": {
      "href": "string"
    },
    "failure_url": {
      "href": "string"
    },
    "callback_url": {
      "href": "string"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "authentication_date": "2019-08-24T14:15:22Z",
  "exemption": {
    "requested": "none",
    "applied": "none",
    "code": "string",
    "trusted_beneficiary": {
      "status": "Y",
      "source": "01"
    }
  },
  "flow_type": "challenged",
  "challenge_indicator": "no_preference",
  "optimization": {
    "optimized": true,
    "framework": "acceptance_rates",
    "optimized_properties": [
      {
        "field": "challenge_indicator",
        "original_value": "trusted_listing",
        "optimized_value": "transaction_risk_assessment"
      }
    ]
  },
  "scheme_info": {
    "name": "cartes_bancaires",
    "score": "string",
    "avalgo": "string"
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  },
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  }
}

```

### Properties

*None*

<h2 id="tocS_Cryptogram">Cryptogram</h2>
<!-- backwards compatibility -->
<a id="schemacryptogram"></a>
<a id="schema_Cryptogram"></a>
<a id="tocScryptogram"></a>
<a id="tocscryptogram"></a>

```json
"MTIzNDU2Nzg5MDA5ODc2NTQzMjE="

```

Payment system-specific value provided as part of the ACS registration for each supported DS. Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating 
  with `session_secret`. Cryptogram can only be retrieved for up to 24 hours after the session is created.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Payment system-specific value provided as part of the ACS registration for each supported DS. Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating <br>  with `session_secret`. Cryptogram can only be retrieved for up to 24 hours after the session is created.|

<h2 id="tocS_Currency">Currency</h2>
<!-- backwards compatibility -->
<a id="schemacurrency"></a>
<a id="schema_Currency"></a>
<a id="tocScurrency"></a>
<a id="tocscurrency"></a>

```json
"USD"

```

The three-letter ISO currency code

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The three-letter ISO currency code|

<h2 id="tocS_DeviceInformation">DeviceInformation</h2>
<!-- backwards compatibility -->
<a id="schemadeviceinformation"></a>
<a id="schema_DeviceInformation"></a>
<a id="tocSdeviceinformation"></a>
<a id="tocsdeviceinformation"></a>

```json
{
  "device_id": "string",
  "device_session_id": "dsid_ipsmclhxwq72phhr32iwfvrflm"
}

```

Details of the device from which the authentication originated.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|device_id|string|false|none|The unique identifier for the device.|
|device_session_id|string|false|none|Device session ID collected from our standalone Risk.js package.|

<h2 id="tocS_Ds">Ds</h2>
<!-- backwards compatibility -->
<a id="schemads"></a>
<a id="schema_Ds"></a>
<a id="tocSds"></a>
<a id="tocsds"></a>

```json
{
  "ds_id": "A000000003",
  "reference_number": "VISA.V 17 0003",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
}

```

The directory server (DS) information. Can be empty if the session is pending or communication with the DS failed

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ds_id|string|false|none|Required if the session is deemed app-based. Registered application provider identifier (RID) that is unique to the payment system. RIDs are defined by the ISO 7816-5 standard. Used as part of the device data encryption process.|
|reference_number|string|false|none|EMVCo-assigned unique identifier to track approved DS|
|transaction_id|string|false|none|Universally unique transaction identifier assigned by the DS|

<h2 id="tocS_DsPublicKeys">DsPublicKeys</h2>
<!-- backwards compatibility -->
<a id="schemadspublickeys"></a>
<a id="schema_DsPublicKeys"></a>
<a id="tocSdspublickeys"></a>
<a id="tocsdspublickeys"></a>

```json
{
  "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
  "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
  "ca_public_all": [
    "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
  ]
}

```

Public certificates specific to a Directory Server (DS) for encrypting device data and verifying ACS signed content. Required when channel is `app`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|ds_public|string|true|none|A public certificate provided by the DS for encryption of device data. It is a base64 URL encoded <a href="https://tools.ietf.org/html/rfc7517" target="_blank">JSON web key</a>.|
|ca_public|string|false|none|Certificate authority (CA) public certificate (root) of the DS-CA. This certificate is used to validate the ACS signed content JSON web signature (JWS) object. It is a base64 URL encoded DER encoded X.509.|
|ca_public_all|[string]|false|none|An array of available certificate authority (CA) public certificates (root) of the DS-CA. <br><br>The certificates are used to validate the JSON web signature (JWS) object signed by the access control server (ACS). Each array element is a Base64 URL-encoded DER-encoded X.509 certificate.|

<h2 id="tocS_Eci">Eci</h2>
<!-- backwards compatibility -->
<a id="schemaeci"></a>
<a id="schema_Eci"></a>
<a id="tocSeci"></a>
<a id="tocseci"></a>

```json
"05"

```

Electronic Commerce Indicator.  Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating with `session_secret`.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Electronic Commerce Indicator.  Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating with `session_secret`.|

<h2 id="tocS_ErrorDetails">ErrorDetails</h2>
<!-- backwards compatibility -->
<a id="schemaerrordetails"></a>
<a id="schema_ErrorDetails"></a>
<a id="tocSerrordetails"></a>
<a id="tocserrordetails"></a>

```json
{
  "error_code": "101",
  "error_component": "D",
  "error_detail": "acctNumber",
  "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
}

```

Provides additional information about the error returned.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error_code|string|false|none|An error code identifying the type of issue.|
|error_component|string|false|none|A code that specifies which 3D Secure component identified the error.|
|error_detail|string|false|none|Provides additional details about the issue.|
|error_description|string|false|none|A description of the issue identified.|

<h2 id="tocS_ErrorResponse">ErrorResponse</h2>
<!-- backwards compatibility -->
<a id="schemaerrorresponse"></a>
<a id="schema_ErrorResponse"></a>
<a id="tocSerrorresponse"></a>
<a id="tocserrorresponse"></a>

```json
{
  "request_id": "5342217f-7fa2-4626-a6c9-c979a04671a6",
  "error_type": "operation_not_allowed",
  "error_codes": [
    "string"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|true|none|none|
|error_type|string|true|none|The type of error. <br/> • operation_not_allowed = Usually with an http status code 403. The request is not allowed by business rules. <br/> • not_implemented = Usually with an http status code 501. This particular feature is not implemented yet. <br/> • not_found = Usually with an http status code 404. The resource requested was not found. <br/> • forbidden = Usually with an http status code 401. You do not have permissions for the requested operation. <br/> • callback_failed = (Non Hosted Only) Only during the complete request. The callback_url responded with a non-success status code. <br/> • internal_server_error = Usually with an http status code 500. Unexpected error during the request or an upstream service failure. <br/> • unprocessable_entity = Usually with an http status code 422. The request payload failed validation. <br/> • conflict = Usually with an http status code 409 during the creation of a resource. The resource already exists. <br/> • duplicate_requests_detected = Usually with an http status code 409. This is returned when a Session is currently being processed. <br /> • service_not_available = Usually with an http status code 503. Triggered given an upstream service failure.<br />|
|error_codes|[string]|true|none|Error response code. Full list of error codes below: <br/> • unknown_error = Usually with an error type `internal_server_error`. An unexpected/unhandled error occurred. <br/> • operation_not_allowed = Usually with an error type `operation_not_allowed`. The request is not allowed by business rules. <br/> • scheme_not_supported = The processor was setup with a scheme not supported by the server. <br/> • card_not_enrolled = The card number was not enrolled for 3DS2 and 3DS1 was either not enabled or not supported for Session (eg amount is 0). <br/> • card_not_eligible = The card number was not eligible for 3DS1. <br/> • card_eligibility_unavailable = A technical issue prevented the 3DS1 transaction from completing. <br /> • card_protocol_version_not_supported = The protocol version provided is not enabled for the processor being used. <br/> • update_not_allowed_due_to_state = The Session was in a state that did not allow for the operation attempted. <br/> • source_not_supported = Support for the Session Source used is not implemented yet. <br/> • session_callback_failed = (Non Hosted Only) Only during the complete request. The callback_url responded with a non-success status code. <br/> • session_persistence_failed = Usually with an error type `internal_server_error`. The API failed to persist the Session. Can be retried. <br/> • hosted_not_supported_for_app = You tried to create a Hosted Session with app channel data which is not allowed. <br/> • three_ds_method_not_supported_for_app = You tried to perform issuer fingerprint on a Session with app channel data which is not allowed. <br/> • three_ds_method_not_supported_without_url = You tried to perform issuer fingerprint on a Session without a 3DS method URL which is not allowed. <br/> • operation_not_allowed_for_scope = You are using an OAuth2.0 token that does not contain the right scope. <br/> • protocol_version_not_supported_by_sdk = You created an App channel Session with a protocol version not supported by the relevant mobile SDK. <br/> • ds_error = The Directory Server (schemes) responded with an unexpected error or timed out. <br/> • processing_channel_disabled = The Processing Channel or processor used for this Session is not active. <br/> • vault_not_configured_for_processing_channel = Using a Processing Channel not configured for use with Checkout.com Vault offering but trying to use a relevant source (`id` or `token`). <br/> • error_getting_instrument = Getting an instrument responded with an unexpected error or timed out. Only relevant for sources `id` or `token`. <br/> • invalid_token = The token used in the source object was invalid. <br/> • instrument_used_is_not_card = Using an `id` type source that is not a card (only card type instruments are supported in 3DS) . <br/> • no_processor_configured_for_card_scheme = Using a card that belongs to a scheme that is not configured in the Processing Channel being used. <br/> • currency_not_supported = An American Express SE number is not associated with the currency in the request. <br/> • scheme_outage = With error type `operation_not_allowed`. This is returned when there is a technical issue on the scheme's platform. <br/> • session_already_in_use = With error type `duplicate_requests_detected`. More than one action requests have been sent in parallel for the same session. <br/><br/> • merchant_initiated_request_not_supported_by_3ds_protocol = With error type `unprocessable_entity`. The merchant-initiated request is not supported by the selected 3DS protocol version. <br/> • initial_session_not_found = With error type `unprocessable_entity`. A previous session could not be found with the provided initial session ID. <br/> • initial_session_invalid = With error type `unprocessable_entity`. The previous session was not valid to be used as an initial transaction. <br/> • invalid_target_scheme = With error type `unprocessable_entity`. The card number cannot be processed with the specified scheme. <br/> • unrecognized_scheme = With error type `unprocessable_entity`. The card number is associated with a scheme that is not supported. <br/><br>Also, there is a number of generic error codes as described below: <br/> • some_field_required = Usually with an error type `unprocessable_entity`. The field `some_field` is required but not provided in the payload. <br/> • some_field_invalid = Usually with an error type `unprocessable_entity`. The field `some_field` failed validation. Please consult the API spec. <br/> • unable_to_verify_some_field = Usually with an error type `service_not_available`. The field `some_field` could not be validated due to an upstream service failure. <br/> • some_resource_already_exists = Usually with an error type `conflict`. The resource you are trying to create already exists (not relevant for Sessions with an auto-generated id). <br/> • some_resource_not_found = Usually with an error type `not_found`. The resource you are trying to get does not exist. <br/>|

#### Enumerated Values

|Property|Value|
|---|---|
|error_type|operation_not_allowed|
|error_type|not_implemented|
|error_type|not_found|
|error_type|forbidden|
|error_type|callback_failed|
|error_type|internal_server_error|
|error_type|unprocessable_entity|
|error_type|conflict|
|error_type|duplicate_requests_detected|
|error_type|service_not_available|

<h2 id="tocS_Experience">Experience</h2>
<!-- backwards compatibility -->
<a id="schemaexperience"></a>
<a id="schema_Experience"></a>
<a id="tocSexperience"></a>
<a id="tocsexperience"></a>

```json
"3ds"

```

The authentication experience that was used for processing

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The authentication experience that was used for processing|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|3ds|
|*anonymous*|google_spa|

<h2 id="tocS_GetBaseSessionLinks">GetBaseSessionLinks</h2>
<!-- backwards compatibility -->
<a id="schemagetbasesessionlinks"></a>
<a id="schema_GetBaseSessionLinks"></a>
<a id="tocSgetbasesessionlinks"></a>
<a id="tocsgetbasesessionlinks"></a>

```json
{
  "self": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
  }
}

```

The links related to the session

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|self|object|true|none|The URI of the session|
|» href|string|true|none|none|

<h2 id="tocS_GetFingerprintSessionLinks">GetFingerprintSessionLinks</h2>
<!-- backwards compatibility -->
<a id="schemagetfingerprintsessionlinks"></a>
<a id="schema_GetFingerprintSessionLinks"></a>
<a id="tocSgetfingerprintsessionlinks"></a>
<a id="tocsgetfingerprintsessionlinks"></a>

```json
{
  "complete": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
  },
  "issuer_fingerprint": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
  },
  "collect_channel_data": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
  },
  "three_ds_method_url": {
    "href": "https://api.hsbc.com/3dsmethod?tx=123456"
  },
  "self": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
  }
}

```

The links related to the session

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|complete|object|false|none|The URI to signal the session as complete. Only available if `next_actions` contains `complete`|
|» href|string|true|none|none|
|issuer_fingerprint|object|false|none|The URI to send the 3ds method completion indicator to. Use this if device information was sent when requesting a session.  Only available if `next_actions` contains `issuer_fingerprint`|
|» href|string|true|none|none|
|collect_channel_data|object|false|none|The URI to send device information to. Only available if `next_actions` contains `collect_data`|
|» href|string|true|none|none|
|three_ds_method_url|object|false|none|The URI of the issuer fingerprint (3DS method). Only available if `next_actions` contains `issuer_fingerprint`|
|» href|string|true|none|none|

<h2 id="tocS_GetSessionLinks">GetSessionLinks</h2>
<!-- backwards compatibility -->
<a id="schemagetsessionlinks"></a>
<a id="schema_GetSessionLinks"></a>
<a id="tocSgetsessionlinks"></a>
<a id="tocsgetsessionlinks"></a>

```json
{
  "issuer_fingerprint": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
  },
  "collect_channel_data": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
  },
  "three_ds_method_url": {
    "href": "https://api.hsbc.com/3dsmethod?tx=123456"
  },
  "acs_url": {
    "href": "https://api.hsbc.com/challenge"
  },
  "complete": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
  },
  "success_url": {
    "href": "string"
  },
  "failure_url": {
    "href": "string"
  },
  "callback_url": {
    "href": "string"
  },
  "self": {
    "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
  }
}

```

The links related to the session

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|issuer_fingerprint|object|false|none|The URI to send the 3ds method completion indicator to. Use this if device information was sent when requesting a session.  Only available if `next_actions` contains `issuer_fingerprint`|
|» href|string|true|none|none|
|collect_channel_data|object|false|none|The URI to send device information to. Only available if `next_actions` contains `collect_data`|
|» href|string|true|none|none|
|three_ds_method_url|object|false|none|The URI of the issuer fingerprint (3DS method). Only available if `next_actions` contains `issuer_fingerprint`|
|» href|string|true|none|none|
|acs_url|object|false|none|Fully qualified URL of the ACS to be used for the challenge. Only available if `next_actions` contains `authenticate`|
|» href|string|true|none|none|
|complete|object|false|none|The URI to signal the session as complete. Only available if `next_actions` contains `complete`|
|» href|string|true|none|none|
|success_url|object|false|none|The cardholder will be redirected to this URI given an authentication was approved or attempted. Only available if the completion type is `hosted`.|
|» href|string|true|none|none|
|failure_url|object|false|none|The cardholder will be redirected to this URI given an authentication was not approved or attempted. Only available if the completion type is `hosted`.|
|» href|string|true|none|none|
|callback_url|object|false|none|An endpoint which will receive a POST request highlighting the result of an authentication. See the "Complete a Session" request for more details. Only available if the completion type is `non_hosted`.|
|» href|string|true|none|none|

<h2 id="tocS_GetSessionResponse">GetSessionResponse</h2>
<!-- backwards compatibility -->
<a id="schemagetsessionresponse"></a>
<a id="schema_GetSessionResponse"></a>
<a id="tocSgetsessionresponse"></a>
<a id="tocsgetsessionresponse"></a>

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "certificates": {
    "ds_public": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ",
    "ca_public": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB",
    "ca_public_all": [
      "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
    ]
  },
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "cardholder_info": "Card declined. Please contact your issuing bank.",
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "customer_ip": "192.168.1.1",
  "_links": {
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "acs_url": {
      "href": "https://api.hsbc.com/challenge"
    },
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "success_url": {
      "href": "string"
    },
    "failure_url": {
      "href": "string"
    },
    "callback_url": {
      "href": "string"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "authentication_date": "2019-08-24T14:15:22Z",
  "exemption": {
    "requested": "none",
    "applied": "none",
    "code": "string",
    "trusted_beneficiary": {
      "status": "Y",
      "source": "01"
    }
  },
  "flow_type": "challenged",
  "challenge_indicator": "no_preference",
  "optimization": {
    "optimized": true,
    "framework": "acceptance_rates",
    "optimized_properties": [
      {
        "field": "challenge_indicator",
        "original_value": "trusted_listing",
        "optimized_value": "transaction_risk_assessment"
      }
    ]
  },
  "scheme_info": {
    "name": "cartes_bancaires",
    "score": "string",
    "avalgo": "string"
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  },
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[SessionId](#schemasessionid)|true|none|Session unique identifier|
|session_secret|[SessionSecret](#schemasessionsecret)|false|none|A base64 encoded value prefixed with `sek_` that gives access to client-side operations for a single authentication within the Sessions API.  This value is returned as the `session_secret` when requesting a session.|
|transaction_id|string|true|none|The transaction identifier that needs to be provided when communicating directly with the Access Control Server (ACS)|
|scheme|string|true|none|Indicates the scheme this authentication is carried out against|
|amount|[Amount](#schemaamount)|true|none|The amount in the minor currency.|
|currency|[Currency](#schemacurrency)|true|none|The three-letter ISO currency code|
|completed|boolean|false|none|Indicates whether this session has been completed|
|challenged|boolean|false|none|Indicates whether this session involved a challenge. This will only be set after communication with the scheme is finished.|
|authentication_type|[AuthenticationType](#schemaauthenticationtype)|true|none|Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.|
|authentication_category|[Category](#schemacategory)|true|none|Indicates the category of the authentication request|
|certificates|[DsPublicKeys](#schemadspublickeys)|false|none|Public certificates specific to a Directory Server (DS) for encrypting device data and verifying ACS signed content. Required when channel is `app`.|
|status|[Status](#schemastatus)|true|none|Indicates the status of the session|
|status_reason|[StatusReason](#schemastatusreason)|false|none|When the Session is unavailable this will point to the reason it is so.  <br/><br/><br>• ares_error = There was an issue in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • ares_status = The status was set to the status in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • rreq_error = There was an issue in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • rreq_status = The status was set to the status in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • risk_declined = The status was set to declined because the Risk engine recommended we decline the authentication <br/>|
|approved|[Approved](#schemaapproved)|false|none|Whether the authentication was successful. This will only be set if the Session is in a final state|
|protocol_version|[ProtocolVersion](#schemaprotocolversion)|true|none|The protocol version number of the specification used by the API for authentication|
|account_info|[CardholderAccountInfo](#schemacardholderaccountinfo)|false|none|Additional information about the Cardholder's account.|
|merchant_risk_info|[MerchantRiskInfo](#schemamerchantriskinfo)|false|none|Additional information about the cardholder's purchase.|
|reference|[Reference](#schemareference)|false|none|A reference you can later use to identify this payment, such as an order number. **Do not pass sensitive information in this field e.g. card details**|
|transaction_type|[TransactionType](#schematransactiontype)|false|none|Identifies the type of transaction being authenticated|
|next_actions|[NextActions](#schemanextactions)|false|none|Specifies which action to take in order to complete the session. <br><br>The `redirect_cardholder` action is only applicable for <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/standalone-sessions/hosted-sessions">hosted sessions</a>.|
|ds|[Ds](#schemads)|false|none|The directory server (DS) information. Can be empty if the session is pending or communication with the DS failed|
|acs|[Acs](#schemaacs)|false|none|The access control server (ACS) information. Can be empty if the session is still pending or if communication with the ACS failed. This will be available when the channel data and issuer fingerprint result have been provided.|
|response_code|[ResponseCode](#schemaresponsecode)|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which indicates whether a transaction qualifies as an authenticated transaction or account verification. <br/> Only available if communication with the scheme was successful and the Session is in a final state. <br/><br/> • Y = Authentication Verification Successful. <br/> • N = Not Authenticated /Account Not Verified; Transaction denied. <br/> • U = Authentication/ Account Verification Could Not Be Performed; Technical or other problem, as indicated in ARes or RReq. <br/> • A = Attempts Processing Performed; Not Authenticated/Verified, but a proof of attempted authentication/verification is provided. <br/> • C = Challenge Required; Additional authentication is required using the CReq/CRes. <br/> • D = Challenge Required; Decoupled Authentication confirmed. <br/> • R = Authentication/ Account Verification Rejected; Issuer is rejecting authentication/verification and request that authorization not be attempted. <br/> • I = Informational Only; 3DS Requestor challenge preference acknowledged.|
|response_status_reason|[ResponseStatusReason](#schemaresponsestatusreason)|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which provides information on why the `response_code` field has the specified value.  <br/> Only available when `response_code` is not `Y`.  <br/> Learn more about the reasons for <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions/understand-authentication-failures" target="_blank">authentication failures</a>.<br/><br/>|
|cryptogram|[Cryptogram](#schemacryptogram)|false|none|Payment system-specific value provided as part of the ACS registration for each supported DS. Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating <br>  with `session_secret`. Cryptogram can only be retrieved for up to 24 hours after the session is created.|
|eci|[Eci](#schemaeci)|false|none|Electronic Commerce Indicator.  Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating with `session_secret`.|
|xid|string|false|none|The xid value to use for authorization|
|cardholder_info|string|false|none|May provide cardholder information from the DS to be presented to the cardholder|
|card|[CardInfo](#schemacardinfo)|false|none|Details related to the Session source. This property should always be in the response, unless a `card` source was used and communication with Checkout.com's Vault was not possible.|
|recurring|[Recurring](#schemarecurring)|false|none|Details of a recurring authentication. This property is needed only for a recurring authentication type. Value will be ignored in any other cases.|
|installment|[Installment](#schemainstallment)|false|none|Details of an installment authentication. This property is needed only for an installment authentication type. Value will be ignored in any other cases.|
|initial_transaction|[InitialTransaction](#schemainitialtransaction)|false|none|Details of a previous transaction|
|customer_ip|string|false|none|Indicates the card holder's IP address.       Only available when the scheme selected is Cartes Bancaires.|
|_links|[GetSessionLinks](#schemagetsessionlinks)|true|none|The links related to the session|
|authentication_date|string(date-time)|false|none|Authentication date and time|
|exemption|object|false|none|Details related to exemption present in 3DS flow|
|» requested|string|false|none|Indicates merchant requested exemption|
|» applied|string|false|none|Indicates Issuer accepted or applied exemption|
|» code|string|false|none|Indicates Cartes Bancaire specific exemption value|
|» trusted_beneficiary|[TrustedBeneficiary](#schematrustedbeneficiary)|false|none|Details of the trusted listing status of the merchant.|
|flow_type|string|false|none|Indicates whether the 3D Secure 2 authentication was challenged or frictionless|
|challenge_indicator|string|true|none|Indicates the preference for whether or not a 3DS challenge should be performed. The customer’s bank has the final say on whether or not the customer receives the challenge|
|optimization|object|false|none|The information about the optimization options selected|
|» optimized|boolean|false|none|Indicates if any optimization has been applied|
|» framework|string|false|none|The optimization framework applied|
|» optimized_properties|[[OptimizedProperty](#schemaoptimizedproperty)]|false|none|The collection of fields optimized|
|scheme_info|object|false|none|Indicates scheme-specific information|
|» name|string|false|none|Indicates which scheme was used to perform authentication|
|» score|string|false|none|Risk score calculated by Directory Server (DS). Cartes Bancaires 3D Secure 2 only|
|» avalgo|string|false|none|Identification of the algorithm used by the ACS to calculate the Authentication Value indicated|
|3ds|object|false|none|This object provides more information about the 3DS experience|
|» challenge_request|string|false|none|The CReq message, encoded in Base 64.|
|» interaction_counter|string|false|none|The number of authentication attempts performed by the cardholder.|
|» error_details|[ErrorDetails](#schemaerrordetails)|false|none|Provides additional information about the error returned.|
|preferred_experiences|[PreferredExperiences](#schemapreferredexperiences)|false|none|Preferred Experiences|
|experience|[Experience](#schemaexperience)|false|none|The authentication experience that was used for processing|
|google_spa|[GoogleSpaInfo](#schemagooglespainfo)|false|none|Details of Google SPA (Secure Payment Authentication)|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|visa|
|scheme|mastercard|
|scheme|jcb|
|scheme|amex|
|scheme|diners|
|scheme|cartes_bancaires|
|scheme|discover|
|scheme|upi|
|requested|none|
|applied|none|
|applied|low_value|
|applied|transaction_risk_assessment|
|applied|secure_corporate_payment|
|applied|trusted_listing|
|applied|3ds_outage|
|applied|sca_delegation|
|applied|out_of_sca_scope|
|applied|other|
|applied|low_risk_program|
|flow_type|challenged|
|flow_type|frictionless|
|flow_type|frictionless_delegated|
|challenge_indicator|no_preference|
|challenge_indicator|no_challenge_requested|
|challenge_indicator|challenge_requested|
|challenge_indicator|challenge_requested_mandate|
|framework|acceptance_rates|
|name|cartes_bancaires|
|name|visa|
|name|mastercard|

<h2 id="tocS_GetSessionResponseAfterChannelDataSupplied">GetSessionResponseAfterChannelDataSupplied</h2>
<!-- backwards compatibility -->
<a id="schemagetsessionresponseafterchanneldatasupplied"></a>
<a id="schema_GetSessionResponseAfterChannelDataSupplied"></a>
<a id="tocSgetsessionresponseafterchanneldatasupplied"></a>
<a id="tocsgetsessionresponseafterchanneldatasupplied"></a>

```json
{
  "id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
  "session_secret": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE=",
  "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c",
  "scheme": "visa",
  "amount": 120,
  "currency": "USD",
  "completed": false,
  "challenged": true,
  "authentication_type": "regular",
  "authentication_category": "payment",
  "status": "challenged",
  "status_reason": "ares_status",
  "approved": false,
  "protocol_version": "2.2.0",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "reference": "ORD-5023-4E89",
  "transaction_type": "goods_service",
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "next_actions": [
    "redirect_cardholder"
  ],
  "ds": {
    "ds_id": "A000000003",
    "reference_number": "VISA.V 17 0003",
    "transaction_id": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
  },
  "acs": {
    "reference_number": "ACSRefNum1234",
    "transaction_id": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87",
    "operator_id": "ACSRefNum1234",
    "url": "https://server.acsdomainname.com",
    "signed_content": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm",
    "challenge_mandated": true,
    "authentication_type": "string",
    "challenge_cancel_reason": "cardholder_cancel",
    "interface": "native_ui",
    "ui_template": "text",
    "challenge_cancel_reason_code": "string"
  },
  "response_code": "Y",
  "response_status_reason": "01",
  "cryptogram": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
  "eci": "05",
  "xid": "XSUErNftqkiTdlkpSk8p32GWOFA",
  "preferred_experiences": {
    "google_spa": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    },
    "3ds": {
      "status": "available",
      "reason": [
        "Invalid response"
      ]
    }
  },
  "experience": "3ds",
  "google_spa": {
    "token": {
      "number": "string",
      "expiry_month": 0,
      "expiry_year": 0
    }
  },
  "card": {
    "instrument_id": "src_ubfj2q76miwundwlk72vxt2i7q",
    "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
    "metadata": {
      "card_type": "CREDIT",
      "card_category": "CONSUMER",
      "issuer_name": "Checkout",
      "issuer_country": "GB",
      "product_id": "MDS",
      "product_type": "Debit MasterCard® Card"
    }
  },
  "_links": {
    "complete": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
    },
    "issuer_fingerprint": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
    },
    "collect_channel_data": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
    },
    "three_ds_method_url": {
      "href": "https://api.hsbc.com/3dsmethod?tx=123456"
    },
    "self": {
      "href": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
    }
  },
  "3ds": {
    "challenge_request": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0",
    "interaction_counter": "03",
    "error_details": {
      "error_code": "101",
      "error_component": "D",
      "error_detail": "acctNumber",
      "error_description": "Cardholder Account Number is not in a range belonging to Issuer."
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|[SessionId](#schemasessionid)|true|none|Session unique identifier|
|session_secret|[SessionSecret](#schemasessionsecret)|false|none|A base64 encoded value prefixed with `sek_` that gives access to client-side operations for a single authentication within the Sessions API.  This value is returned as the `session_secret` when requesting a session.|
|transaction_id|string|true|none|The transaction identifier that needs to be provided when communicating directly with the Access Control Server (ACS)|
|scheme|string|true|none|Indicates the scheme this authentication is carried out against|
|amount|[Amount](#schemaamount)|true|none|The amount in the minor currency.|
|currency|[Currency](#schemacurrency)|true|none|The three-letter ISO currency code|
|completed|boolean|false|none|Indicates whether this session has been completed|
|challenged|boolean|false|none|Indicates whether this session involved a challenge. This will only be set after communication with the scheme is finished.|
|authentication_type|[AuthenticationType](#schemaauthenticationtype)|true|none|Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.|
|authentication_category|[Category](#schemacategory)|true|none|Indicates the category of the authentication request|
|status|[Status](#schemastatus)|true|none|Indicates the status of the session|
|status_reason|[StatusReason](#schemastatusreason)|false|none|When the Session is unavailable this will point to the reason it is so.  <br/><br/><br>• ares_error = There was an issue in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • ares_status = The status was set to the status in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • rreq_error = There was an issue in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • rreq_status = The status was set to the status in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • risk_declined = The status was set to declined because the Risk engine recommended we decline the authentication <br/>|
|approved|[Approved](#schemaapproved)|false|none|Whether the authentication was successful. This will only be set if the Session is in a final state|
|protocol_version|[ProtocolVersion](#schemaprotocolversion)|true|none|The protocol version number of the specification used by the API for authentication|
|account_info|[CardholderAccountInfo](#schemacardholderaccountinfo)|false|none|Additional information about the Cardholder's account.|
|merchant_risk_info|[MerchantRiskInfo](#schemamerchantriskinfo)|false|none|Additional information about the cardholder's purchase.|
|reference|[Reference](#schemareference)|false|none|A reference you can later use to identify this payment, such as an order number. **Do not pass sensitive information in this field e.g. card details**|
|transaction_type|[TransactionType](#schematransactiontype)|false|none|Identifies the type of transaction being authenticated|
|initial_transaction|[InitialTransaction](#schemainitialtransaction)|false|none|Details of a previous transaction|
|next_actions|[NextActions](#schemanextactions)|false|none|Specifies which action to take in order to complete the session. <br><br>The `redirect_cardholder` action is only applicable for <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/standalone-sessions/hosted-sessions">hosted sessions</a>.|
|ds|[Ds](#schemads)|false|none|The directory server (DS) information. Can be empty if the session is pending or communication with the DS failed|
|acs|[Acs](#schemaacs)|false|none|The access control server (ACS) information. Can be empty if the session is still pending or if communication with the ACS failed. This will be available when the channel data and issuer fingerprint result have been provided.|
|response_code|[ResponseCode](#schemaresponsecode)|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which indicates whether a transaction qualifies as an authenticated transaction or account verification. <br/> Only available if communication with the scheme was successful and the Session is in a final state. <br/><br/> • Y = Authentication Verification Successful. <br/> • N = Not Authenticated /Account Not Verified; Transaction denied. <br/> • U = Authentication/ Account Verification Could Not Be Performed; Technical or other problem, as indicated in ARes or RReq. <br/> • A = Attempts Processing Performed; Not Authenticated/Verified, but a proof of attempted authentication/verification is provided. <br/> • C = Challenge Required; Additional authentication is required using the CReq/CRes. <br/> • D = Challenge Required; Decoupled Authentication confirmed. <br/> • R = Authentication/ Account Verification Rejected; Issuer is rejecting authentication/verification and request that authorization not be attempted. <br/> • I = Informational Only; 3DS Requestor challenge preference acknowledged.|
|response_status_reason|[ResponseStatusReason](#schemaresponsestatusreason)|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which provides information on why the `response_code` field has the specified value.  <br/> Only available when `response_code` is not `Y`.  <br/> Learn more about the reasons for <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions/understand-authentication-failures" target="_blank">authentication failures</a>.<br/><br/>|
|cryptogram|[Cryptogram](#schemacryptogram)|false|none|Payment system-specific value provided as part of the ACS registration for each supported DS. Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating <br>  with `session_secret`. Cryptogram can only be retrieved for up to 24 hours after the session is created.|
|eci|[Eci](#schemaeci)|false|none|Electronic Commerce Indicator.  Please be advised that this field will only be included in responses when authenticating with a valid OAuth token and not when authenticating with `session_secret`.|
|xid|string|false|none|The xid value to use for authorization|
|preferred_experiences|[PreferredExperiences](#schemapreferredexperiences)|false|none|Preferred Experiences|
|experience|[Experience](#schemaexperience)|false|none|The authentication experience that was used for processing|
|google_spa|[GoogleSpaInfo](#schemagooglespainfo)|false|none|Details of Google SPA (Secure Payment Authentication)|
|card|[CardInfo](#schemacardinfo)|false|none|Details related to the Session source. This property should always be in the response, unless a `card` source was used and communication with Checkout.com's Vault was not possible.|
|_links|[GetFingerprintSessionLinks](#schemagetfingerprintsessionlinks)|true|none|The links related to the session|
|3ds|object|false|none|Provides additional information about the 3DS authentication experience.|
|» challenge_request|string|false|none|The CReq message, encoded in Base 64.|
|» interaction_counter|string|false|none|The number of authentication attempts performed by the cardholder.|
|» error_details|[ErrorDetails](#schemaerrordetails)|false|none|Provides additional information about the error returned.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|visa|
|scheme|mastercard|
|scheme|jcb|
|scheme|amex|
|scheme|diners|
|scheme|cartes_bancaires|
|scheme|discover|
|scheme|upi|

<h2 id="tocS_GoogleSpaInfo">GoogleSpaInfo</h2>
<!-- backwards compatibility -->
<a id="schemagooglespainfo"></a>
<a id="schema_GoogleSpaInfo"></a>
<a id="tocSgooglespainfo"></a>
<a id="tocsgooglespainfo"></a>

```json
{
  "token": {
    "number": "string",
    "expiry_month": 0,
    "expiry_year": 0
  }
}

```

Details of Google SPA (Secure Payment Authentication)

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[HostedGoogleSpaInfo](#schemahostedgooglespainfo)|false|none|Details of Google SPA (Secure Payment Authentication) for a hosted authentication|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[NonHostedGoogleSpaInfo](#schemanonhostedgooglespainfo)|false|none|Details of Google SPA (Secure Payment Authentication) for a non-hosted authentication|

<h2 id="tocS_GoogleSpaToken">GoogleSpaToken</h2>
<!-- backwards compatibility -->
<a id="schemagooglespatoken"></a>
<a id="schema_GoogleSpaToken"></a>
<a id="tocSgooglespatoken"></a>
<a id="tocsgooglespatoken"></a>

```json
{
  "number": "string",
  "expiry_month": 0,
  "expiry_year": 0
}

```

Token for the given PAN provisioned and authenticated

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number|string|false|none|Value of token. Represented as a numerical string|
|expiry_month|number|false|none|Expiry month of the token|
|expiry_year|number|false|none|Expiry year of the token|

<h2 id="tocS_HostedCompletionInfo">HostedCompletionInfo</h2>
<!-- backwards compatibility -->
<a id="schemahostedcompletioninfo"></a>
<a id="schema_HostedCompletionInfo"></a>
<a id="tocShostedcompletioninfo"></a>
<a id="tocshostedcompletioninfo"></a>

```json
{
  "type": "hosted",
  "success_url": "http://example.com/payments/success",
  "failure_url": "http://example.com/payments/fail"
}

```

hosted

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|Whether the session should be hosted by Checkout.com.|
|success_url|string(uri)|true|none|For `hosted` sessions, this overrides the default success redirect URL configured on your account|
|failure_url|string(uri)|true|none|For `hosted` sessions, this overrides the default failure redirect URL configured on your account|

#### Enumerated Values

|Property|Value|
|---|---|
|type|hosted|

<h2 id="tocS_HostedGoogleSpaInfo">HostedGoogleSpaInfo</h2>
<!-- backwards compatibility -->
<a id="schemahostedgooglespainfo"></a>
<a id="schema_HostedGoogleSpaInfo"></a>
<a id="tocShostedgooglespainfo"></a>
<a id="tocshostedgooglespainfo"></a>

```json
{
  "token": {
    "number": "string",
    "expiry_month": 0,
    "expiry_year": 0
  }
}

```

Hosted

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|[GoogleSpaToken](#schemagooglespatoken)|false|none|Token for the given PAN provisioned and authenticated|

<h2 id="tocS_IdSource">IdSource</h2>
<!-- backwards compatibility -->
<a id="schemaidsource"></a>
<a id="schema_IdSource"></a>
<a id="tocSidsource"></a>
<a id="tocsidsource"></a>

```json
{
  "type": "id",
  "scheme": "amex",
  "number": "4242424242424242",
  "expiry_month": 12,
  "expiry_year": 2077,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "home_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "mobile_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "work_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "email": "bruce.wayne@email.com",
  "id": "src_4gzeau5o2uqubbk6fufs3m7p54"
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|scheme|string|false|none|Indicates the cardholder scheme choice|
|number|string|false|none|The card number.|
|expiry_month|integer|false|none|The expiry month of the card.|
|expiry_year|integer|false|none|The expiry year of the card.|
|billing_address|[SessionAddress](#schemasessionaddress)|false|none|The customer's billing address. Any special characters will be replaced.|
|home_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's home phone number|
|mobile_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's mobile phone number|
|work_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's work phone number|
|email|string|false|none|The email of the cardholder|
|id|string|true|none|The card instrument id|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|amex|
|scheme|cartes_bancaires|
|scheme|diners|
|scheme|mastercard|
|scheme|visa|
|scheme|discover|
|scheme|upi|
|scheme|jcb|

<h2 id="tocS_InitialTransaction">InitialTransaction</h2>
<!-- backwards compatibility -->
<a id="schemainitialtransaction"></a>
<a id="schema_InitialTransaction"></a>
<a id="tocSinitialtransaction"></a>
<a id="tocsinitialtransaction"></a>

```json
{
  "acs_transaction_id": "stringstringstringstringstringstring",
  "authentication_method": "frictionless_authentication",
  "authentication_timestamp": "2023-02-06T15:00:00.000Z",
  "authentication_data": "string",
  "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
}

```

Details of a previous transaction

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|acs_transaction_id|string|false|none|The Access Control Server (ACS) transaction ID for a previously authenticated transaction|
|authentication_method|string|false|none|none|
|authentication_timestamp|string|false|none|The timestamp of the previous authentication, in ISO 8601 format.|
|authentication_data|string|false|none|Data that documents and supports a specific authentication process|
|initial_session_id|string|false|none|The ID for a previous session, which is used for retrieve the initial transaction's properties|

#### Enumerated Values

|Property|Value|
|---|---|
|authentication_method|frictionless_authentication|
|authentication_method|challenge_occurred|
|authentication_method|avs_verified|
|authentication_method|other_issuer_methods|

<h2 id="tocS_Installment">Installment</h2>
<!-- backwards compatibility -->
<a id="schemainstallment"></a>
<a id="schema_Installment"></a>
<a id="tocSinstallment"></a>
<a id="tocsinstallment"></a>

```json
{
  "number_of_payments": 2,
  "days_between_payments": 28,
  "expiry": "20220901"
}

```

Details of an installment authentication. This property is needed only for an installment authentication type. Value will be ignored in any other cases.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number_of_payments|integer|true|none|Indicates the agreed total number of payment installments to be made in the duration of the installment agreement. Required when the authentication type is `instalment`.|
|days_between_payments|integer|false|none|Indicates the minimum number of days between authorisations. If no value is specified for an installment authentication type the default value will be used.|
|expiry|string|false|none|Date after which no further authorisations are performed in the format yyyyMMdd. If no value is specified for an installment authentication type the default value will be used.|

<h2 id="tocS_MerchantInitiated">MerchantInitiated</h2>
<!-- backwards compatibility -->
<a id="schemamerchantinitiated"></a>
<a id="schema_MerchantInitiated"></a>
<a id="tocSmerchantinitiated"></a>
<a id="tocsmerchantinitiated"></a>

```json
{
  "channel": "merchant_initiated",
  "request_type": "recurring_transaction"
}

```

merchant_initiated

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|channel|string|true|none|none|
|request_type|string|true|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|channel|merchant_initiated|
|request_type|recurring_transaction|
|request_type|installment_transaction|
|request_type|add_card|
|request_type|maintain_card_information|
|request_type|account_verification|
|request_type|split_or_delayed_shipment|
|request_type|top_up|
|request_type|mail_order|
|request_type|telephone_order|
|request_type|whitelist_status_check|
|request_type|other_payment|

<h2 id="tocS_MerchantRiskInfo">MerchantRiskInfo</h2>
<!-- backwards compatibility -->
<a id="schemamerchantriskinfo"></a>
<a id="schema_MerchantRiskInfo"></a>
<a id="tocSmerchantriskinfo"></a>
<a id="tocsmerchantriskinfo"></a>

```json
{
  "delivery_email": "brucewayne@email.com",
  "delivery_timeframe": "electronic_delivery",
  "is_preorder": true,
  "is_reorder": false,
  "shipping_indicator": "billing_address",
  "reorder_items_indicator": "first_time_ordered",
  "pre_order_purchase_indicator": "merchandise_available",
  "pre_order_date": "2019-08-24T14:15:22Z",
  "gift_card_amount": "123",
  "gift_card_currency": "USD",
  "gift_card_count": "02"
}

```

Additional information about the cardholder's purchase.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|delivery_email|string|false|none|For Electronic delivery, the email address to which the merchandise was delivered.|
|delivery_timeframe|string|false|none|Indicates the merchandise delivery timeframe.|
|is_preorder|boolean|false|none|Indicates whether the cardholder is placing an order for merchandise with a future availability or release date.|
|is_reorder|boolean|false|none|Indicates whether the cardholder is reordering previously purchased merchandise.|
|shipping_indicator|string|false|none|Indicates the shipping method chosen for the transaction. Please choose an option that accurately describes the cardholder's specific transaction.|
|reorder_items_indicator|string|false|none|Specifies whether the cardholder is reordering merchandise they've previously purchased.|
|pre_order_purchase_indicator|string|false|none|Specifies whether the cardholder is placing an order for merchandise with an availability date or release date in the future.|
|pre_order_date|string(date-time)|false|none|The UTC date the pre-ordered merchandise is expected to be available, in ISO 8601 format.|
|gift_card_amount|string|false|none|The total purchase amount, in major units. For example, the major unit amount for a gift card purchase of 135.20 USD is `135`. Only applicable for prepaid or gift card purchases.|
|gift_card_currency|string|false|none|The currency code of the gift card,  as a three-digit ISO 4217 code. Only applicable for prepaid or gift card purchases.|
|gift_card_count|string|false|none|The total number of individual prepaid cards, gift cards, or gift codes purchased. Only applicable for prepaid or gift card purchases.|

#### Enumerated Values

|Property|Value|
|---|---|
|delivery_timeframe|electronic_delivery|
|delivery_timeframe|same_day|
|delivery_timeframe|overnight|
|delivery_timeframe|two_day_or_more|
|shipping_indicator|billing_address|
|shipping_indicator|another_address_on_file|
|shipping_indicator|not_on_file|
|shipping_indicator|store_pick_up|
|shipping_indicator|digital_goods|
|shipping_indicator|travel_and_event_no_shipping|
|shipping_indicator|other|
|reorder_items_indicator|first_time_ordered|
|reorder_items_indicator|reordered|
|pre_order_purchase_indicator|merchandise_available|
|pre_order_purchase_indicator|future_availability|

<h2 id="tocS_NetworkTokenSource">NetworkTokenSource</h2>
<!-- backwards compatibility -->
<a id="schemanetworktokensource"></a>
<a id="schema_NetworkTokenSource"></a>
<a id="tocSnetworktokensource"></a>
<a id="tocsnetworktokensource"></a>

```json
{
  "type": "network_token",
  "scheme": "amex",
  "number": "4242424242424242",
  "expiry_month": 12,
  "expiry_year": 2077,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "home_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "mobile_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "work_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "email": "bruce.wayne@email.com",
  "token": "4543474002249996",
  "name": "Bruce Wayne",
  "stored": true
}

```

network_token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|scheme|string|false|none|Indicates the cardholder scheme choice|
|number|string|false|none|The card number.|
|expiry_month|integer|true|none|The expiry month of the card.|
|expiry_year|integer|true|none|The expiry year of the card.|
|billing_address|[SessionAddress](#schemasessionaddress)|false|none|The customer's billing address. Any special characters will be replaced.|
|home_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's home phone number|
|mobile_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's mobile phone number|
|work_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's work phone number|
|email|string|false|none|The email of the cardholder|
|token|string|true|none|The network token PAN|
|name|string|false|none|The customer's name. Any special characters will be replaced.|
|stored|boolean|false|none|Indicates whether this card is being submitted from your own stored card-on-file system, rather than being entered by the customer at the time of payment. Set to `true` when you provide card details that you already have on file for the customer.|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|amex|
|scheme|cartes_bancaires|
|scheme|diners|
|scheme|mastercard|
|scheme|visa|
|scheme|discover|
|scheme|upi|
|scheme|jcb|

<h2 id="tocS_NextActions">NextActions</h2>
<!-- backwards compatibility -->
<a id="schemanextactions"></a>
<a id="schema_NextActions"></a>
<a id="tocSnextactions"></a>
<a id="tocsnextactions"></a>

```json
[
  "redirect_cardholder"
]

```

Specifies which action to take in order to complete the session. 

The `redirect_cardholder` action is only applicable for <a href="https://www.checkout.com/docs/payments/authenticate-payments/3d-secure/standalone-sessions/hosted-sessions">hosted sessions</a>.

### Properties

*None*

<h2 id="tocS_NonHostedCompletionInfo">NonHostedCompletionInfo</h2>
<!-- backwards compatibility -->
<a id="schemanonhostedcompletioninfo"></a>
<a id="schema_NonHostedCompletionInfo"></a>
<a id="tocSnonhostedcompletioninfo"></a>
<a id="tocsnonhostedcompletioninfo"></a>

```json
{
  "type": "non_hosted",
  "callback_url": "http://example.com/payments/callback/pay_mbabizu24mvu3mela5njyhpit4",
  "challenge_notification_url": "http://example.com/payments/challenge/sid_mbabizu24mvu3mela5njyhpit4"
}

```

non_hosted

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|Whether the session should be hosted by Checkout.com.|
|callback_url|string(uri)|false|none|For `non-hosted` sessions, you can define a URL to be called once the session is complete|
|challenge_notification_url|string(uri)|false|none|For `non-hosted` sessions, you can define a URL to be your own challenge notification endpoint. When not provided, a Checkout.com endpoint will be used.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|non_hosted|

<h2 id="tocS_NonHostedGoogleSpaInfo">NonHostedGoogleSpaInfo</h2>
<!-- backwards compatibility -->
<a id="schemanonhostedgooglespainfo"></a>
<a id="schema_NonHostedGoogleSpaInfo"></a>
<a id="tocSnonhostedgooglespainfo"></a>
<a id="tocsnonhostedgooglespainfo"></a>

```json
{
  "challenge_url": "string",
  "initial_timeout": "string",
  "max_timeout": "string",
  "iframe": {
    "height": "string",
    "width": "string"
  },
  "token": {
    "number": "string",
    "expiry_month": 0,
    "expiry_year": 0
  }
}

```

Non Hosted

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|challenge_url|string|false|none|Fully qualified URL of the Google SPA (Secure Payment Authentication) frontend for user challenge/unlock|
|initial_timeout|string|false|none|Indicates the amount of time (in minutes) allowed for establishing the initial connection to the user's specific authentication session, as determined by the challenge_url)|
|max_timeout|string|false|none|Indicates maximum amount of time (in minutes) allowed for completing all PSP-Google message exchanges for current authentication session|
|iframe|object|false|none|Details of the challenge iframe displayed in the Cardholder browser window|
|» height|string|false|none|Height of the challenge iframe displayed in the Cardholder browser window.|
|» width|string|false|none|Width of the challenge iframe displayed in the Cardholder browser window.|
|token|[GoogleSpaToken](#schemagooglespatoken)|false|none|Token for the given PAN provisioned and authenticated|

<h2 id="tocS_Optimization">Optimization</h2>
<!-- backwards compatibility -->
<a id="schemaoptimization"></a>
<a id="schema_Optimization"></a>
<a id="tocSoptimization"></a>
<a id="tocsoptimization"></a>

```json
{
  "framework": "acceptance_rates"
}

```

Optionally opt into request optimization

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|framework|string|false|none|The theme-based option for optimization|

#### Enumerated Values

|Property|Value|
|---|---|
|framework|acceptance_rates|

<h2 id="tocS_OptimizedProperty">OptimizedProperty</h2>
<!-- backwards compatibility -->
<a id="schemaoptimizedproperty"></a>
<a id="schema_OptimizedProperty"></a>
<a id="tocSoptimizedproperty"></a>
<a id="tocsoptimizedproperty"></a>

```json
{
  "field": "challenge_indicator",
  "original_value": "trusted_listing",
  "optimized_value": "transaction_risk_assessment"
}

```

Optionally opt into request optimization

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|field|string|false|none|Name of the field which has been optimized.|
|original_value|string|false|none|Value prior to optimization.|
|optimized_value|string|false|none|Value prior to optimization.|

<h2 id="tocS_PreferredExperiences">PreferredExperiences</h2>
<!-- backwards compatibility -->
<a id="schemapreferredexperiences"></a>
<a id="schema_PreferredExperiences"></a>
<a id="tocSpreferredexperiences"></a>
<a id="tocspreferredexperiences"></a>

```json
{
  "google_spa": {
    "status": "available",
    "reason": [
      "Invalid response"
    ]
  },
  "3ds": {
    "status": "available",
    "reason": [
      "Invalid response"
    ]
  }
}

```

Preferred Experiences

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|google_spa|object|false|none|Google SPA experience.|
|» status|string|false|none|none|
|» reason|[string]|false|none|Reason(s) why processing the experience was unsuccessful.|
|3ds|object|false|none|3DS experience.|
|» status|string|false|none|none|
|» reason|[string]|false|none|Reason(s) why processing the experience was unsuccessful.|

#### Enumerated Values

|Property|Value|
|---|---|
|status|available|
|status|unprocessed|
|status|processed|
|status|unavailable|
|status|available|
|status|unprocessed|
|status|processed|
|status|unavailable|

<h2 id="tocS_ProtocolVersion">ProtocolVersion</h2>
<!-- backwards compatibility -->
<a id="schemaprotocolversion"></a>
<a id="schema_ProtocolVersion"></a>
<a id="tocSprotocolversion"></a>
<a id="tocsprotocolversion"></a>

```json
"2.2.0"

```

The protocol version number of the specification used by the API for authentication

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|The protocol version number of the specification used by the API for authentication|

<h2 id="tocS_Recurring">Recurring</h2>
<!-- backwards compatibility -->
<a id="schemarecurring"></a>
<a id="schema_Recurring"></a>
<a id="tocSrecurring"></a>
<a id="tocsrecurring"></a>

```json
{
  "days_between_payments": 28,
  "expiry": "20220901"
}

```

Details of a recurring authentication. This property is needed only for a recurring authentication type. Value will be ignored in any other cases.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|days_between_payments|integer|false|none|Indicates the minimum number of days between authorisations. If no value is specified for a recurring authentication type the default value will be used.|
|expiry|string|false|none|Date after which no further authorisations are performed in the format yyyyMMdd. If no value is specified for a recurring authentication type the default value will be used.|

<h2 id="tocS_Reference">Reference</h2>
<!-- backwards compatibility -->
<a id="schemareference"></a>
<a id="schema_Reference"></a>
<a id="tocSreference"></a>
<a id="tocsreference"></a>

```json
"ORD-5023-4E89"

```

A reference you can later use to identify this payment, such as an order number. **Do not pass sensitive information in this field e.g. card details**

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|A reference you can later use to identify this payment, such as an order number. **Do not pass sensitive information in this field e.g. card details**|

<h2 id="tocS_ResponseCode">ResponseCode</h2>
<!-- backwards compatibility -->
<a id="schemaresponsecode"></a>
<a id="schema_ResponseCode"></a>
<a id="tocSresponsecode"></a>
<a id="tocsresponsecode"></a>

```json
"Y"

```

Only available as a result of a 3DS2 authentication. 
The response from the DS or ACS which indicates whether a transaction qualifies as an authenticated transaction or account verification. <br/> Only available if communication with the scheme was successful and the Session is in a final state. <br/><br/> • Y = Authentication Verification Successful. <br/> • N = Not Authenticated /Account Not Verified; Transaction denied. <br/> • U = Authentication/ Account Verification Could Not Be Performed; Technical or other problem, as indicated in ARes or RReq. <br/> • A = Attempts Processing Performed; Not Authenticated/Verified, but a proof of attempted authentication/verification is provided. <br/> • C = Challenge Required; Additional authentication is required using the CReq/CRes. <br/> • D = Challenge Required; Decoupled Authentication confirmed. <br/> • R = Authentication/ Account Verification Rejected; Issuer is rejecting authentication/verification and request that authorization not be attempted. <br/> • I = Informational Only; 3DS Requestor challenge preference acknowledged.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which indicates whether a transaction qualifies as an authenticated transaction or account verification. <br/> Only available if communication with the scheme was successful and the Session is in a final state. <br/><br/> • Y = Authentication Verification Successful. <br/> • N = Not Authenticated /Account Not Verified; Transaction denied. <br/> • U = Authentication/ Account Verification Could Not Be Performed; Technical or other problem, as indicated in ARes or RReq. <br/> • A = Attempts Processing Performed; Not Authenticated/Verified, but a proof of attempted authentication/verification is provided. <br/> • C = Challenge Required; Additional authentication is required using the CReq/CRes. <br/> • D = Challenge Required; Decoupled Authentication confirmed. <br/> • R = Authentication/ Account Verification Rejected; Issuer is rejecting authentication/verification and request that authorization not be attempted. <br/> • I = Informational Only; 3DS Requestor challenge preference acknowledged.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|Y|
|*anonymous*|N|
|*anonymous*|U|
|*anonymous*|A|
|*anonymous*|C|
|*anonymous*|D|
|*anonymous*|R|
|*anonymous*|I|

<h2 id="tocS_ResponseStatusReason">ResponseStatusReason</h2>
<!-- backwards compatibility -->
<a id="schemaresponsestatusreason"></a>
<a id="schema_ResponseStatusReason"></a>
<a id="tocSresponsestatusreason"></a>
<a id="tocsresponsestatusreason"></a>

```json
"01"

```

Only available as a result of a 3DS2 authentication. 
The response from the DS or ACS which provides information on why the `response_code` field has the specified value.  <br/> Only available when `response_code` is not `Y`.  <br/> Learn more about the reasons for <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions/understand-authentication-failures" target="_blank">authentication failures</a>.<br/><br/>

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Only available as a result of a 3DS2 authentication. <br>The response from the DS or ACS which provides information on why the `response_code` field has the specified value.  <br/> Only available when `response_code` is not `Y`.  <br/> Learn more about the reasons for <a href="https://www.checkout.com/docs/risk-management/3d-secure/sessions/understand-authentication-failures" target="_blank">authentication failures</a>.<br/><br/>|

<h2 id="tocS_SdkEphemeralPublicKey">SdkEphemeralPublicKey</h2>
<!-- backwards compatibility -->
<a id="schemasdkephemeralpublickey"></a>
<a id="schema_SdkEphemeralPublicKey"></a>
<a id="tocSsdkephemeralpublickey"></a>
<a id="tocssdkephemeralpublickey"></a>

```json
{
  "kty": "EC",
  "crv": "P-256",
  "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
  "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
}

```

Public key component of the ephemeral key pair generated by the 3DS SDK and used to establish session keys between the 3DS SDK and ACS. Refer to https://tools.ietf.org/html/rfc7517#appendix-A.1

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|kty|string|false|none|The key type.|
|crv|string|false|none|The type of elliptic curve.|
|x|string|false|none|x coordinate of the elliptic curve that is base64url-encoded.|
|y|string|false|none|y coordinate of the elliptic curve that is base64url-encoded.|

#### Enumerated Values

|Property|Value|
|---|---|
|kty|EC|

<h2 id="tocS_SessionAddress">SessionAddress</h2>
<!-- backwards compatibility -->
<a id="schemasessionaddress"></a>
<a id="schema_SessionAddress"></a>
<a id="tocSsessionaddress"></a>
<a id="tocssessionaddress"></a>

```json
{
  "address_line1": "123 High St.",
  "address_line2": "ABC building",
  "address_line3": "14 Wells Mews",
  "city": "London",
  "state": "ENG",
  "zip": "SW1A 1AA",
  "country": "GB"
}

```

The shipping address. Any special characters will be replaced.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|address_line1|string|false|none|The first line of the address|
|address_line2|string|false|none|The second line of the address|
|address_line3|string|false|none|The third line of the address|
|city|string|false|none|The address city|
|state|string|false|none|The country subdivision code defined in ISO 3166-2|
|zip|string|false|none|The address zip/postal code|
|country|string|false|none|The two-letter <a href="https://www.checkout.com/docs/resources/codes/country-codes" target="_blank">ISO country code</a> of the address|

<h2 id="tocS_SessionId">SessionId</h2>
<!-- backwards compatibility -->
<a id="schemasessionid"></a>
<a id="schema_SessionId"></a>
<a id="tocSsessionid"></a>
<a id="tocssessionid"></a>

```json
"sid_y3oqhf46pyzuxjbcn2giaqnb44"

```

Session unique identifier

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Session unique identifier|

<h2 id="tocS_SessionMarketplaceData">SessionMarketplaceData</h2>
<!-- backwards compatibility -->
<a id="schemasessionmarketplacedata"></a>
<a id="schema_SessionMarketplaceData"></a>
<a id="tocSsessionmarketplacedata"></a>
<a id="tocssessionmarketplacedata"></a>

```json
{
  "sub_entity_id": "ent_rgyzti4x74xubmu72m6r3pvksa"
}

```

Information related to authentication for payfac payments

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|sub_entity_id|string|false|none|The sub-entity that the authentication is being processed on behalf of|

<h2 id="tocS_SessionPhone">SessionPhone</h2>
<!-- backwards compatibility -->
<a id="schemasessionphone"></a>
<a id="schema_SessionPhone"></a>
<a id="tocSsessionphone"></a>
<a id="tocssessionphone"></a>

```json
{
  "country_code": "234",
  "number": "0204567895"
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|true|none|Country code. According to ITU-E.164|
|number|string|true|none|The rest of the number. According to ITU-E.164|

<h2 id="tocS_SessionRequest">SessionRequest</h2>
<!-- backwards compatibility -->
<a id="schemasessionrequest"></a>
<a id="schema_SessionRequest"></a>
<a id="tocSsessionrequest"></a>
<a id="tocssessionrequest"></a>

```json
{
  "source": {
    "type": "card",
    "scheme": "amex",
    "number": "4242424242424242",
    "expiry_month": 12,
    "expiry_year": 2077,
    "billing_address": {
      "address_line1": "123 High St.",
      "address_line2": "ABC building",
      "address_line3": "14 Wells Mews",
      "city": "London",
      "state": "ENG",
      "zip": "SW1A 1AA",
      "country": "GB"
    },
    "home_phone": {
      "country_code": "234",
      "number": "0204567895"
    },
    "mobile_phone": {
      "country_code": "234",
      "number": "0204567895"
    },
    "work_phone": {
      "country_code": "234",
      "number": "0204567895"
    },
    "email": "bruce.wayne@email.com",
    "name": "Bruce Wayne",
    "stored": true
  },
  "amount": 6540,
  "currency": "USD",
  "processing_channel_id": "string",
  "marketplace": {
    "sub_entity_id": "ent_rgyzti4x74xubmu72m6r3pvksa"
  },
  "authentication_type": "regular",
  "authentication_category": "payment",
  "account_info": {
    "purchase_count": 10,
    "account_age": "no_account",
    "add_card_attempts": 10,
    "shipping_address_age": "this_transaction",
    "account_name_matches_shipping_name": true,
    "suspicious_account_activity": true,
    "transactions_today": 10,
    "authentication_method": "no_authentication",
    "cardholder_account_age_indicator": "no_account,",
    "account_change": "2019-08-24T14:15:22Z",
    "account_change_indicator": "this_transaction",
    "account_date": "2019-08-24T14:15:22Z",
    "account_password_change": "2019-08-24T14:15:22Z",
    "account_password_change_indicator": "no_change",
    "transactions_per_year": 2,
    "payment_account_age": "2019-08-24T14:15:22Z",
    "shipping_address_usage": "2019-08-24T14:15:22Z",
    "account_type": "not_applicable",
    "account_id": "string",
    "three_ds_requestor_authentication_info": {
      "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
      "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
      "three_ds_req_auth_data": "string"
    }
  },
  "challenge_indicator": "no_preference",
  "billing_descriptor": {
    "name": "SUPERHEROES.COM"
  },
  "reference": "ORD-5023-4E89",
  "merchant_risk_info": {
    "delivery_email": "brucewayne@email.com",
    "delivery_timeframe": "electronic_delivery",
    "is_preorder": true,
    "is_reorder": false,
    "shipping_indicator": "billing_address",
    "reorder_items_indicator": "first_time_ordered",
    "pre_order_purchase_indicator": "merchandise_available",
    "pre_order_date": "2019-08-24T14:15:22Z",
    "gift_card_amount": "123",
    "gift_card_currency": "USD",
    "gift_card_count": "02"
  },
  "transaction_type": "goods_service",
  "shipping_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "shipping_address_matches_billing": false,
  "completion": {
    "type": "non_hosted",
    "callback_url": "https://merchant.com/callback"
  },
  "channel_data": {
    "channel": "browser",
    "accept_header": "Accept:  *.*, q=0.1",
    "java_enabled": true,
    "javascript_enabled": true,
    "language": "FR-fr",
    "color_depth": "16",
    "screen_height": "1080",
    "screen_width": "1920",
    "timezone": "60",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
    "three_ds_method_completion": "Y",
    "ip_address": "1.12.123.255",
    "iframe_payment_allowed": true,
    "user_agent_client_hint": "Sec-CH-UA: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\""
  },
  "recurring": {
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "installment": {
    "number_of_payments": 2,
    "days_between_payments": 28,
    "expiry": "20220901"
  },
  "optimization": {
    "framework": "acceptance_rates"
  },
  "initial_transaction": {
    "acs_transaction_id": "stringstringstringstringstringstring",
    "authentication_method": "frictionless_authentication",
    "authentication_timestamp": "2023-02-06T15:00:00.000Z",
    "authentication_data": "string",
    "initial_session_id": "sid_p6prbhogijnuxgv4grm3ber55u"
  },
  "google_spa": {
    "continue_url": "string"
  },
  "preferred_experiences": [
    "3ds"
  ],
  "device_information": {
    "device_id": "string",
    "device_session_id": "dsid_ipsmclhxwq72phhr32iwfvrflm"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source|[SessionSource](#schemasessionsource)|true|none|The source of the authentication.|
|amount|integer|false|none|The payment amount in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount).<br><br>For `recurring` and `installment` payment types, this value is required and must be greater than zero.<br><br>Omitting this value will set `authentication_category` to `non_payment`.|
|currency|string|true|none|The three-letter ISO currency code|
|processing_channel_id|string|false|none|The processing channel to be used for the session. Required if this was not set in the request for the OAuth token.|
|marketplace|[SessionMarketplaceData](#schemasessionmarketplacedata)|false|none|Information related to authentication for payfac payments|
|authentication_type|[AuthenticationType](#schemaauthenticationtype)|false|none|Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.|
|authentication_category|[Category](#schemacategory)|false|none|Indicates the category of the authentication request|
|account_info|[CardholderAccountInfo](#schemacardholderaccountinfo)|false|none|Additional information about the Cardholder's account.|
|challenge_indicator|[ChallengeIndicator](#schemachallengeindicator)|false|none|Indicates whether a challenge is requested for this session.<br/> <br/> The following are requests for exemption: <br/> • `low_value` <br/> • `trusted_listing` <br/> • `trusted_listing_prompt` <br/> • `transaction_risk_assessment` <br/><br/><br>If an exemption cannot be applied, then the value `no_challenge_requested` will be used instead.|
|billing_descriptor|[SessionsBillingDescriptor](#schemasessionsbillingdescriptor)|false|none|An optional dynamic billing descriptor.|
|reference|[Reference](#schemareference)|false|none|A reference you can later use to identify this payment, such as an order number. **Do not pass sensitive information in this field e.g. card details**|
|merchant_risk_info|[MerchantRiskInfo](#schemamerchantriskinfo)|false|none|Additional information about the cardholder's purchase.|
|transaction_type|[TransactionType](#schematransactiontype)|false|none|Identifies the type of transaction being authenticated|
|shipping_address|[SessionAddress](#schemasessionaddress)|false|none|The shipping address. Any special characters will be replaced.|
|shipping_address_matches_billing|boolean|false|none|Indicates whether the cardholder shipping address and billing address are the same.|
|completion|[CompletionInfo](#schemacompletioninfo)|true|none|The redirect information needed for callbacks or redirects after the payment is completed|
|channel_data|[ChannelData](#schemachanneldata)|false|none|The information gathered from the environment used to initiate the session|
|recurring|[Recurring](#schemarecurring)|false|none|Details of a recurring authentication. This property is needed only for a recurring authentication type. Value will be ignored in any other cases.|
|installment|[Installment](#schemainstallment)|false|none|Details of an installment authentication. This property is needed only for an installment authentication type. Value will be ignored in any other cases.|
|optimization|[Optimization](#schemaoptimization)|false|none|Optionally opt into request optimization|
|initial_transaction|[InitialTransaction](#schemainitialtransaction)|false|none|Details of a previous transaction|
|google_spa|object|false|none|This object contains the Google SPA properties (non-hosted only)|
|» continue_url|string|false|none|Fully qualified URL for redirecting the user's browser session after authentication.<br/> For example, this field may be the merchant's website for purchase confirmation once payment is complete.<br/> Required if in full redirect (not iframe) mode.<br/>|
|preferred_experiences|[[Experience](#schemaexperience)]|false|none|Indicates the chosen experience(s) for this session.<br/> <br/> Available experiences include: <br/> • `3ds` <br/> • `google_spa` <br/>|
|device_information|[DeviceInformation](#schemadeviceinformation)|false|none|Details of the device from which the authentication originated.|

<h2 id="tocS_SessionSecret">SessionSecret</h2>
<!-- backwards compatibility -->
<a id="schemasessionsecret"></a>
<a id="schema_SessionSecret"></a>
<a id="tocSsessionsecret"></a>
<a id="tocssessionsecret"></a>

```json
"sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE="

```

A base64 encoded value prefixed with `sek_` that gives access to client-side operations for a single authentication within the Sessions API.  This value is returned as the `session_secret` when requesting a session.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|A base64 encoded value prefixed with `sek_` that gives access to client-side operations for a single authentication within the Sessions API.  This value is returned as the `session_secret` when requesting a session.|

<h2 id="tocS_SessionSource">SessionSource</h2>
<!-- backwards compatibility -->
<a id="schemasessionsource"></a>
<a id="schema_SessionSource"></a>
<a id="tocSsessionsource"></a>
<a id="tocssessionsource"></a>

```json
{
  "type": "card",
  "scheme": "amex",
  "number": "4242424242424242",
  "expiry_month": 12,
  "expiry_year": 2077,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "home_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "mobile_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "work_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "email": "bruce.wayne@email.com",
  "name": "Bruce Wayne",
  "stored": true
}

```

The source of the authentication.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|scheme|string|false|none|Indicates the cardholder scheme choice|
|number|string|false|none|The card number.|
|expiry_month|integer|false|none|The expiry month of the card.|
|expiry_year|integer|false|none|The expiry year of the card.|
|billing_address|[SessionAddress](#schemasessionaddress)|false|none|The customer's billing address. Any special characters will be replaced.|
|home_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's home phone number|
|mobile_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's mobile phone number|
|work_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's work phone number|
|email|string|false|none|The email of the cardholder|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[CardSource](#schemacardsource)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[IdSource](#schemaidsource)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[TokenSource](#schematokensource)|false|none|none|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[NetworkTokenSource](#schemanetworktokensource)|false|none|none|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|amex|
|scheme|cartes_bancaires|
|scheme|diners|
|scheme|mastercard|
|scheme|visa|
|scheme|discover|
|scheme|upi|
|scheme|jcb|

<h2 id="tocS_Status">Status</h2>
<!-- backwards compatibility -->
<a id="schemastatus"></a>
<a id="schema_Status"></a>
<a id="tocSstatus"></a>
<a id="tocsstatus"></a>

```json
"challenged"

```

Indicates the status of the session

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Indicates the status of the session|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|challenged|
|*anonymous*|pending|
|*anonymous*|processing|
|*anonymous*|challenge_abandoned|
|*anonymous*|expired|
|*anonymous*|approved|
|*anonymous*|attempted|
|*anonymous*|unavailable|
|*anonymous*|declined|
|*anonymous*|rejected|

<h2 id="tocS_StatusReason">StatusReason</h2>
<!-- backwards compatibility -->
<a id="schemastatusreason"></a>
<a id="schema_StatusReason"></a>
<a id="tocSstatusreason"></a>
<a id="tocsstatusreason"></a>

```json
"ares_status"

```

When the Session is unavailable this will point to the reason it is so.  <br/><br/>
• ares_error = There was an issue in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • ares_status = The status was set to the status in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • rreq_error = There was an issue in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • rreq_status = The status was set to the status in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • risk_declined = The status was set to declined because the Risk engine recommended we decline the authentication <br/>

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|When the Session is unavailable this will point to the reason it is so.  <br/><br/><br>• ares_error = There was an issue in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • ares_status = The status was set to the status in the Authentication response we got back from the Directory Server (scheme server - 3DS2) <br/> • rreq_error = There was an issue in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • rreq_status = The status was set to the status in the Response we got back from the Access Control Server (issuer server - 3DS2) <br/> • risk_declined = The status was set to declined because the Risk engine recommended we decline the authentication <br/>|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|ares_status|
|*anonymous*|ares_error|
|*anonymous*|rreq_error|
|*anonymous*|rreq_status|
|*anonymous*|risk_declined|

<h2 id="tocS_ThreeDsMethodCompletion">ThreeDsMethodCompletion</h2>
<!-- backwards compatibility -->
<a id="schemathreedsmethodcompletion"></a>
<a id="schema_ThreeDsMethodCompletion"></a>
<a id="tocSthreedsmethodcompletion"></a>
<a id="tocsthreedsmethodcompletion"></a>

```json
{
  "three_ds_method_completion": "Y"
}

```

The result of the 3DS method url

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|three_ds_method_completion|string|true|none|The result of the 3DS method URL.<br>  Default to `U` if a response is not received from the 3DS Method URL within 10 seconds.|

#### Enumerated Values

|Property|Value|
|---|---|
|three_ds_method_completion|Y|
|three_ds_method_completion|N|
|three_ds_method_completion|U|

<h2 id="tocS_ThreeDsRequestorAuthenticationInfo">ThreeDsRequestorAuthenticationInfo</h2>
<!-- backwards compatibility -->
<a id="schemathreedsrequestorauthenticationinfo"></a>
<a id="schema_ThreeDsRequestorAuthenticationInfo"></a>
<a id="tocSthreedsrequestorauthenticationinfo"></a>
<a id="tocsthreedsrequestorauthenticationinfo"></a>

```json
{
  "three_ds_req_auth_method": "no_threeds_requestor_authentication_occurred",
  "three_ds_req_auth_timestamp": "2019-08-24T14:15:22Z",
  "three_ds_req_auth_data": "string"
}

```

Information about how the 3DS Requestor authenticated the cardholder before or during the transaction.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|three_ds_req_auth_method|string|false|none|The mechanism used by the cardholder to authenticate with the 3DS Requestor.|
|three_ds_req_auth_timestamp|string(date-time)|false|none|The UTC date and time the cardholder authenticated with the 3DS Requestor, in ISO 8601 format.|
|three_ds_req_auth_data|string|false|none|Data that documents and supports a specific authentication process.|

#### Enumerated Values

|Property|Value|
|---|---|
|three_ds_req_auth_method|no_threeds_requestor_authentication_occurred|
|three_ds_req_auth_method|three3ds_requestor_own_credentials|
|three_ds_req_auth_method|federated_id|
|three_ds_req_auth_method|issuer_credentials|
|three_ds_req_auth_method|third_party_authentication|
|three_ds_req_auth_method|fido_authenticator|
|three_ds_req_auth_method|fido_authenticator_fido_assurance_data_signed|
|three_ds_req_auth_method|src_assurance_data|

<h2 id="tocS_TokenSource">TokenSource</h2>
<!-- backwards compatibility -->
<a id="schematokensource"></a>
<a id="schema_TokenSource"></a>
<a id="tocStokensource"></a>
<a id="tocstokensource"></a>

```json
{
  "type": "token",
  "scheme": "amex",
  "number": "4242424242424242",
  "expiry_month": 12,
  "expiry_year": 2077,
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "ABC building",
    "address_line3": "14 Wells Mews",
    "city": "London",
    "state": "ENG",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "home_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "mobile_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "work_phone": {
    "country_code": "234",
    "number": "0204567895"
  },
  "email": "bruce.wayne@email.com",
  "token": "tok_4gzeau5o2uqubbk6fufs3m7p54"
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The payment source type|
|scheme|string|false|none|Indicates the cardholder scheme choice|
|number|string|false|none|The card number.|
|expiry_month|integer|false|none|The expiry month of the card.|
|expiry_year|integer|false|none|The expiry year of the card.|
|billing_address|[SessionAddress](#schemasessionaddress)|false|none|The customer's billing address. Any special characters will be replaced.|
|home_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's home phone number|
|mobile_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's mobile phone number|
|work_phone|[SessionPhone](#schemasessionphone)|false|none|The cardholder's work phone number|
|email|string|false|none|The email of the cardholder|
|token|string|true|none|The Checkout.com card token|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme|amex|
|scheme|cartes_bancaires|
|scheme|diners|
|scheme|mastercard|
|scheme|visa|
|scheme|discover|
|scheme|upi|
|scheme|jcb|

<h2 id="tocS_TransactionType">TransactionType</h2>
<!-- backwards compatibility -->
<a id="schematransactiontype"></a>
<a id="schema_TransactionType"></a>
<a id="tocStransactiontype"></a>
<a id="tocstransactiontype"></a>

```json
"goods_service"

```

Identifies the type of transaction being authenticated

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Identifies the type of transaction being authenticated|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|goods_service|
|*anonymous*|check_acceptance|
|*anonymous*|account_funding|
|*anonymous*|quasi_card_transaction|
|*anonymous*|prepaid_activation_and_load|

<h2 id="tocS_TrustedBeneficiary">TrustedBeneficiary</h2>
<!-- backwards compatibility -->
<a id="schematrustedbeneficiary"></a>
<a id="schema_TrustedBeneficiary"></a>
<a id="tocStrustedbeneficiary"></a>
<a id="tocstrustedbeneficiary"></a>

```json
{
  "status": "Y",
  "source": "01"
}

```

Details of the trusted listing status of the merchant.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|string|false|none|Enables the communication of trusted beneficiary status between the Access Control Server (ACS), the Directory Server (DS), and the 3D Secure (3DS) Requestor.<br/><br/><br>• Y = 3DS Requestor is allowlisted by cardholder<br/> • N = 3DS Requestor is not allowlisted by cardholder<br/> • E = Not eligible as determined by issuer<br/> • P = Pending confirmation by cardholder<br/> • R = Cardholder rejected<br/> • U = Allowlist status unknown, unavailable, or does not apply|
|source|string|false|none|The system setting trusted beneficiary status.<br/><br/><br>• 01 = 3DS Server <br/> • 02 = DS <br/> • 03 = ACS <br/> • 80-99 = DS-specific values <br/>|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Y|
|status|N|
|status|E|
|status|P|
|status|R|
|status|U|

<h2 id="tocS_AccountUpdaterRequest">AccountUpdaterRequest</h2>
<!-- backwards compatibility -->
<a id="schemaaccountupdaterrequest"></a>
<a id="schema_AccountUpdaterRequest"></a>
<a id="tocSaccountupdaterrequest"></a>
<a id="tocsaccountupdaterrequest"></a>

```json
{
  "source_options": {
    "card": {
      "number": "5436424242424242",
      "expiry_month": 5,
      "expiry_year": 2025
    },
    "instrument": {
      "id": "src_nmukohhu7vbe5f55ndwqzwv2c4"
    }
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|source_options|object|false|none|The source to update. You must provide either `card` or `instrument` object, but not both.|
|» card|[CardDetailsRequest](#schemacarddetailsrequest)|false|none|The card details|
|» instrument|[Instrument](#schemainstrument)|false|none|Instrument reference|

<h2 id="tocS_AccountUpdaterResponse">AccountUpdaterResponse</h2>
<!-- backwards compatibility -->
<a id="schemaaccountupdaterresponse"></a>
<a id="schema_AccountUpdaterResponse"></a>
<a id="tocSaccountupdaterresponse"></a>
<a id="tocsaccountupdaterresponse"></a>

```json
{
  "account_update_status": "CARD_UPDATED",
  "account_update_failure_code": "CARDHOLDER_OPT_OUT",
  "card": {
    "encrypted_card_number": "3nCryp73dFPANv4lu3",
    "bin": "543642",
    "last4": "4242",
    "expiry_month": 5,
    "expiry_year": 2025,
    "fingerprint": "abc123fingerprint"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|account_update_status|string|true|none|Result of the update operation.|
|account_update_failure_code|string|false|none|This field is returned when the update fails and the scheme returns an appropriate reason code. <p/><br><br>For more information, see [Standalone Account Updater](https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/standalone-account-updater)|
|card|[CardDetailsResponse](#schemacarddetailsresponse)|false|none|Updated card details. Fields vary depending on PCI compliance level.|

#### Enumerated Values

|Property|Value|
|---|---|
|account_update_status|CARD_UPDATED|
|account_update_status|CARD_EXPIRY_UPDATED|
|account_update_status|CARD_CLOSED|
|account_update_status|UPDATE_FAILED|
|account_update_failure_code|CARDHOLDER_OPT_OUT|
|account_update_failure_code|UP_TO_DATE|
|account_update_failure_code|NON_PARTICIPATING_BIN|
|account_update_failure_code|UNKNOWN|

<h2 id="tocS_CardDetailsRequest">CardDetailsRequest</h2>
<!-- backwards compatibility -->
<a id="schemacarddetailsrequest"></a>
<a id="schema_CardDetailsRequest"></a>
<a id="tocScarddetailsrequest"></a>
<a id="tocscarddetailsrequest"></a>

```json
{
  "number": "5436424242424242",
  "expiry_month": 5,
  "expiry_year": 2025
}

```

The card details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|number|string|true|none|The card number.|
|expiry_month|integer(int32)|true|none|The expiry month of the card|
|expiry_year|integer(int32)|true|none|The four-digit expiry year of the card|

<h2 id="tocS_CardDetailsResponse">CardDetailsResponse</h2>
<!-- backwards compatibility -->
<a id="schemacarddetailsresponse"></a>
<a id="schema_CardDetailsResponse"></a>
<a id="tocScarddetailsresponse"></a>
<a id="tocscarddetailsresponse"></a>

```json
{
  "encrypted_card_number": "3nCryp73dFPANv4lu3",
  "bin": "543642",
  "last4": "4242",
  "expiry_month": 5,
  "expiry_year": 2025,
  "fingerprint": "abc123fingerprint"
}

```

Updated card details. Fields vary depending on PCI compliance level.

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|encrypted_card_number|string|false|none|The encrypted full Primary Account Number (PAN). Returned only for PCI SAQ D merchants.|
|bin|string|false|none|The first 6 digits of the PAN.|
|last4|string|false|none|Last 4 digits of the PAN.|
|expiry_month|integer(int32)|true|none|Expiry month. Expressed in number.|
|expiry_year|integer(int32)|true|none|Four-digit expiry year.|
|fingerprint|string|false|none|Unique identifier for the card|

<h2 id="tocS_Instrument">Instrument</h2>
<!-- backwards compatibility -->
<a id="schemainstrument"></a>
<a id="schema_Instrument"></a>
<a id="tocSinstrument"></a>
<a id="tocsinstrument"></a>

```json
{
  "id": "src_nmukohhu7vbe5f55ndwqzwv2c4"
}

```

Instrument reference

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|Unique instrument identifier|

<h2 id="tocS_Timestamp">Timestamp</h2>
<!-- backwards compatibility -->
<a id="schematimestamp"></a>
<a id="schema_Timestamp"></a>
<a id="tocStimestamp"></a>
<a id="tocstimestamp"></a>

```json
"2019-08-24T14:15:22Z"

```

ISO 8601 timestamp

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string(date-time)|false|none|ISO 8601 timestamp|

<h2 id="tocS_01_CardTokenRequest">01_CardTokenRequest</h2>
<!-- backwards compatibility -->
<a id="schema01_cardtokenrequest"></a>
<a id="schema_01_CardTokenRequest"></a>
<a id="tocS01_cardtokenrequest"></a>
<a id="tocs01_cardtokenrequest"></a>

```json
{
  "type": "card",
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "cvv": "956",
  "pin": "12",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of card details to be tokenized|
|number|string|true|none|The card number|
|expiry_month|integer|true|none|The expiry month of the card|
|expiry_year|integer|true|none|The expiry year of the card|
|name|string|false|none|The cardholder's name|
|cvv|string|false|none|The card verification value/code. 3 digits, except for American Express (4 digits)|
|pin|string|false|none|The first 2 digits of the card PIN|
|billing_address|[Address](#schemaaddress)|false|none|The payment source owner's billing address|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The payment source owner's phone number|

#### Enumerated Values

|Property|Value|
|---|---|
|type|card|

<h2 id="tocS_01_CardTokenResponse">01_CardTokenResponse</h2>
<!-- backwards compatibility -->
<a id="schema01_cardtokenresponse"></a>
<a id="schema_01_CardTokenResponse"></a>
<a id="tocS01_cardtokenresponse"></a>
<a id="tocs01_cardtokenresponse"></a>

```json
{
  "type": "card",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2019-08-24T14:15:22Z",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "scheme": "VISA",
  "scheme_local": "cartes_bancaires",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC"
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of card details to be tokenized|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[TokenResponseType](#schematokenresponsetype)|false|none|Ordered list of token response types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The reference token|
|expires_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the token will expire|
|billing_address|[Address](#schemaaddress)|false|none|The payment source owner's billing address|
|phone|[PhoneNumber](#schemaphonenumber)|false|none|The payment source owner's phone number|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|The expiry year|
|name|string|false|none|The cardholder's name|
|scheme|string|true|none|The card scheme|
|scheme_local|string|false|none|The local co-branded card scheme|
|last4|string|true|none|The last four digits of the card number|
|bin|string|true|none|The card issuer's Bank Identification Number (BIN)|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/resources/codes/country-codes" target="blank">two-letter ISO code</a>)|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|
|scheme_local|cartes_bancaires|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|

<h2 id="tocS_02_GooglePayTokenRequest">02_GooglePayTokenRequest</h2>
<!-- backwards compatibility -->
<a id="schema02_googlepaytokenrequest"></a>
<a id="schema_02_GooglePayTokenRequest"></a>
<a id="tocS02_googlepaytokenrequest"></a>
<a id="tocs02_googlepaytokenrequest"></a>

```json
{
  "type": "googlepay",
  "token_data": {
    "protocolVersion": "ECv1",
    "signature": "TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ",
    "signedMessage": "{\"encryptedMessage\": \"ZW5jcnlwdGVkTWVzc2FnZQ==\", \"ephemeralPublicKey\": \"ZXBoZW1lcmFsUHVibGljS2V5\", \"tag\": \"c2lnbmF0dXJl\"}"
  }
}

```

googlepay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of card details to be tokenized|
|token_data|object|false|none|The Google Pay payment token|
|» signature|string|false|none|Verifies the message came from Google. The signature is created using ECDSA|
|» protocolVersion|string|false|none|Identifies which encryption/signing scheme created this message. In this way, the protocol can evolve over time if needed. If it is not set, assume ECv0|
|» signedMessage|string|false|none|A serialized JSON string containing the encryptedMessage, ephemeralPublicKey, and tag. To simplify the signature verification process, this value is serialized|

#### Enumerated Values

|Property|Value|
|---|---|
|type|googlepay|

<h2 id="tocS_02_GooglePayTokenResponse">02_GooglePayTokenResponse</h2>
<!-- backwards compatibility -->
<a id="schema02_googlepaytokenresponse"></a>
<a id="schema_02_GooglePayTokenResponse"></a>
<a id="tocS02_googlepaytokenresponse"></a>
<a id="tocs02_googlepaytokenresponse"></a>

```json
{
  "type": "googlepay",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2019-08-24T14:15:22Z",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "scheme_local": "cartes_bancaires",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "token_format": "pan_only"
}

```

googlepay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of card details to be tokenized|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[TokenResponseType](#schematokenresponsetype)|false|none|Ordered list of token response types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The reference token|
|expires_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the token will expire|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|expiry year|
|scheme|string|true|none|The card scheme|
|scheme_local|string|false|none|The local co-branded card scheme|
|last4|string|true|none|The last four digits of the card number|
|bin|string|true|none|The card issuer BIN|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer country ISO-2 code|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|token_format|string|false|none|The format of the token.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|googlepay|
|scheme_local|cartes_bancaires|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|token_format|pan_only|
|token_format|cryptogram_3ds|

<h2 id="tocS_03_ApplePayTokenRequest">03_ApplePayTokenRequest</h2>
<!-- backwards compatibility -->
<a id="schema03_applepaytokenrequest"></a>
<a id="schema_03_ApplePayTokenRequest"></a>
<a id="tocS03_applepaytokenrequest"></a>
<a id="tocs03_applepaytokenrequest"></a>

```json
{
  "type": "applepay",
  "token_data": {
    "version": "EC_v1",
    "data": "t7GeajLB9skXB6QSWfEpPA4WPhDqB7ekdd+F7588arLzvebKp3P0TekUslSQ8nkuacUgLdks2IKyCm7U3OL/PEYLXE7w60VkQ8WE6FXs/cqHkwtSW9vkzZNDxSLDg9slgLYxAH2/iztdipPpyIYKl0Kb6Rn9rboF+lwgRxM1B3n84miApwF5Pxl8ZOOXGY6F+3DsDo7sMCUTaJK74DUJJcjIXrigtINWKW6RFa/4qmPEC/Y+syg04x7B99mbLQQzWFm7z6HfRmynPM9/GA0kbsqd/Kn5Mkqssfhn/m6LuNKsqEmbKi85FF6kip+F17LRawG48bF/lT8wj/QEuDY0G7t/ryOnGLtKteXmAf0oJnwkelIyfyj2KI8GChBuTJonGlXKr5klPE89/ycmkgDl+T6Ms7PhiNZpuGEE2QE=",
    "signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+/hp88DKJ0sv3eT3FxWcs71xmbLKD/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN/EuT4TNW1WZbNa4i0Jd2DSJOe7oI/XYXzojLdrtmcL7I6CmE/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu/0uSzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBjTCCAYkCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzA4MDIxNjA5NDZaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIGEfVr+4x9RQXyfF8IYA0kraoK0pcZEaBlINo6EGrOReMAoGCCqGSM49BAMCBEgwRgIhAKunK47QEr/ZjxPlVl+etzVzbKA41xPLWtO01oUOlulmAiEAiaFH9F9LK6uqTFAUW/WIDkHWiFuSm5a3NVox7DlyIf0AAAAAAAA=",
    "header": {
      "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEX1ievoT8DRB8T5zGkhHZHeDr0oBmYEgsDSxyT0MD0IZ2Mpfjz2LdWq6LUwSH9EmxdPEzMunsZKWMyOr3K/zlsw==",
      "publicKeyHash": "tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6Nl0=",
      "transactionId": "3cee89679130a4b2617c76118a1c62fd400cd45b49dc0916d5b951b560cd17b4"
    }
  }
}

```

applepay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of card details to be tokenized|
|token_data|[TokenData](#schematokendata)|true|none|The Apple Pay payment token|

#### Enumerated Values

|Property|Value|
|---|---|
|type|applepay|

<h2 id="tocS_03_ApplePayTokenResponse">03_ApplePayTokenResponse</h2>
<!-- backwards compatibility -->
<a id="schema03_applepaytokenresponse"></a>
<a id="schema_03_ApplePayTokenResponse"></a>
<a id="tocS03_applepaytokenresponse"></a>
<a id="tocs03_applepaytokenresponse"></a>

```json
{
  "type": "applepay",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2019-08-24T14:15:22Z",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "scheme_local": "cartes_bancaires",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "token_format": "cryptogram_3ds"
}

```

applepay

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of card details to be tokenized|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[TokenResponseType](#schematokenresponsetype)|false|none|Ordered list of token response types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The reference token|
|expires_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the token will expire|
|expiry_month|integer|true|none|The expiry month|
|expiry_year|integer|true|none|expiry year|
|scheme|string|true|none|The card scheme|
|scheme_local|string|false|none|The local co-branded card scheme|
|last4|string|true|none|The last four digits of the card number|
|bin|string|true|none|The card issuer BIN|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer country ISO-2 code|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|
|token_format|string|false|none|The format of the token.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|applepay|
|scheme_local|cartes_bancaires|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|
|token_format|cryptogram_3ds|

<h2 id="tocS_04_CvvTokenRequest">04_CvvTokenRequest</h2>
<!-- backwards compatibility -->
<a id="schema04_cvvtokenrequest"></a>
<a id="schema_04_CvvTokenRequest"></a>
<a id="tocS04_cvvtokenrequest"></a>
<a id="tocs04_cvvtokenrequest"></a>

```json
{
  "type": "cvv",
  "token_data": {
    "cvv": "123"
  }
}

```

cvv

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of card details to be tokenized|
|token_data|object|true|none|Data containing the CVV token value|
|» cvv|string|false|none|The card verification value/code. 3 digits, except for American Express (4 digits)|

#### Enumerated Values

|Property|Value|
|---|---|
|type|cvv|

<h2 id="tocS_04_CvvTokenResponse">04_CvvTokenResponse</h2>
<!-- backwards compatibility -->
<a id="schema04_cvvtokenresponse"></a>
<a id="schema_04_CvvTokenResponse"></a>
<a id="tocS04_cvvtokenresponse"></a>
<a id="tocs04_cvvtokenresponse"></a>

```json
{
  "type": "cvv",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00"
}

```

cvv

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of card details to be tokenized|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[TokenResponseType](#schematokenresponsetype)|false|none|Ordered list of token response types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The token id.|
|expires_on|string(date-time)|true|none|The expiry value for the token id.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|cvv|

<h2 id="tocS_05_PinTokenRequest">05_PinTokenRequest</h2>
<!-- backwards compatibility -->
<a id="schema05_pintokenrequest"></a>
<a id="schema_05_PinTokenRequest"></a>
<a id="tocS05_pintokenrequest"></a>
<a id="tocs05_pintokenrequest"></a>

```json
{
  "type": "pin",
  "token_data": {
    "pin": "12"
  }
}

```

pin

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of card details to be tokenized|
|token_data|object|true|none|Data containing the PIN token value|
|» pin|string|false|none|The first 2 digits of the card PIN|

#### Enumerated Values

|Property|Value|
|---|---|
|type|pin|

<h2 id="tocS_05_PinTokenResponse">05_PinTokenResponse</h2>
<!-- backwards compatibility -->
<a id="schema05_pintokenresponse"></a>
<a id="schema_05_PinTokenResponse"></a>
<a id="tocS05_pintokenresponse"></a>
<a id="tocs05_pintokenresponse"></a>

```json
{
  "type": "pin",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2023-07-11T15:57:32.435+00:00"
}

```

pin

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|any|true|none|The type of card details to be tokenized|

allOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|[TokenResponseType](#schematokenresponsetype)|false|none|Ordered list of token response types used for discriminators|

and

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|» *anonymous*|string|false|none|none|

continued

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The token id.|
|expires_on|string(date-time)|true|none|The expiry value for the token id.|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|pin|

<h2 id="tocS_TokenData">TokenData</h2>
<!-- backwards compatibility -->
<a id="schematokendata"></a>
<a id="schema_TokenData"></a>
<a id="tocStokendata"></a>
<a id="tocstokendata"></a>

```json
{
  "version": "EC_v1",
  "data": "t7GeajLB9skXB6QSWfEpPA4WPhDqB7ekdd+F7588arLzvebKp3P0TekUslSQ8nkuacUgLdks2IKyCm7U3OL/PEYLXE7w60VkQ8WE6FXs/cqHkwtSW9vkzZNDxSLDg9slgLYxAH2/iztdipPpyIYKl0Kb6Rn9rboF+lwgRxM1B3n84miApwF5Pxl8ZOOXGY6F+3DsDo7sMCUTaJK74DUJJcjIXrigtINWKW6RFa/4qmPEC/Y+syg04x7B99mbLQQzWFm7z6HfRmynPM9/GA0kbsqd/Kn5Mkqssfhn/m6LuNKsqEmbKi85FF6kip+F17LRawG48bF/lT8wj/QEuDY0G7t/ryOnGLtKteXmAf0oJnwkelIyfyj2KI8GChBuTJonGlXKr5klPE89/ycmkgDl+T6Ms7PhiNZpuGEE2QE=",
  "signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0kAMEYCIQDaHGOui+X2T44R6GVpN7m2nEcr6T6sMjOhZ5NuSo1egwIhAL1a+/hp88DKJ0sv3eT3FxWcs71xmbLKD/QJ3mWagrJNMIIC7jCCAnWgAwIBAgIISW0vvzqY2pcwCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0NjMwWhcNMjkwNTA2MjM0NjMwWjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFxGEGddkhdUaXiWBB3bogKLv3nuuTeCN/EuT4TNW1WZbNa4i0Jd2DSJOe7oI/XYXzojLdrtmcL7I6CmE/1RFo4H3MIH0MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZXJvb3RjYWczMB0GA1UdDgQWBBQj8knET5Pk7yfmxPYobD+iu/0uSzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFLuw3qFYM4iapIqZ3r6966/ayySrMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkiG92NkBgIOBAIFADAKBggqhkjOPQQDAgNnADBkAjA6z3KDURaZsYb7NcNWymK/9Bft2Q91TaKOvvGcgV5Ct4n4mPebWZ+Y1UENj53pwv4CMDIt1UQhsKMFd2xd8zg7kGf9F3wsIW2WT8ZyaYISb1T4en0bmcubCYkhYQaZDwmSHQAAMYIBjTCCAYkCAQEwgYYwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTAghoYPaZ2cynDzANBglghkgBZQMEAgEFAKCBlTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzA4MDIxNjA5NDZaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIGEfVr+4x9RQXyfF8IYA0kraoK0pcZEaBlINo6EGrOReMAoGCCqGSM49BAMCBEgwRgIhAKunK47QEr/ZjxPlVl+etzVzbKA41xPLWtO01oUOlulmAiEAiaFH9F9LK6uqTFAUW/WIDkHWiFuSm5a3NVox7DlyIf0AAAAAAAA=",
  "header": {
    "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEX1ievoT8DRB8T5zGkhHZHeDr0oBmYEgsDSxyT0MD0IZ2Mpfjz2LdWq6LUwSH9EmxdPEzMunsZKWMyOr3K/zlsw==",
    "publicKeyHash": "tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6Nl0=",
    "transactionId": "3cee89679130a4b2617c76118a1c62fd400cd45b49dc0916d5b951b560cd17b4"
  }
}

```

The Apple Pay payment token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|version|string|false|none|Version information about the payment token. The token uses `EC_v1` for ECC-encrypted data, and `RSA_v1` for RSA-encrypted data|
|data|string|false|none|Encrypted payment data. Base64 encoded as a string|
|signature|string|false|none|Signature of the payment and header data. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm|
|header|object|false|none|Additional version-dependent information used to decrypt and verify the payment|

<h2 id="tocS_TokenMetadataResponse">TokenMetadataResponse</h2>
<!-- backwards compatibility -->
<a id="schematokenmetadataresponse"></a>
<a id="schema_TokenMetadataResponse"></a>
<a id="tocStokenmetadataresponse"></a>
<a id="tocstokenmetadataresponse"></a>

```json
{
  "token": "tok_4gzeau5o2uqubbk6fudbloo47a",
  "type": "card",
  "expires_on": "2019-08-24T14:15:22Z",
  "expiry_month": 12,
  "expiry_year": 2030,
  "scheme": "Visa",
  "last4": "4242",
  "bin": "424242",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "JPMORGAN CHASE BANK NA",
  "issuer_country": "US",
  "product_id": "A",
  "product_type": "Visa Traditional",
  "billing_address": {
    "city": "London",
    "country": "GB"
  }
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|token|string|true|none|The token ID|
|type|string|true|none|The token type.|
|expires_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the token will expire.|
|expiry_month|integer|true|none|The card expiry month.|
|expiry_year|integer|true|none|The card expiry year.|
|scheme|string|true|none|The card scheme.|
|last4|string|true|none|The last four digits of the card number.|
|bin|string|true|none|The card issuer BIN.|
|card_type|string|false|none|The card type.|
|card_category|string|false|none|The card category.|
|issuer|string|false|none|The name of the card issuer.|
|issuer_country|string|false|none|The card issuer's country (<a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="blank">two-letter ISO code</a>).|
|product_id|string|false|none|The issuer or card scheme's product identifier.|
|product_type|string|false|none|The issuer or card scheme's product type.|
|billing_address|object¦null|false|none|Partial billing address — city and country only.|
|» city|string|false|none|The address city|
|» country|string|false|none|The billing address country's (<a href="https://www.checkout.com/docs/previous/resources/codes/country-codes" target="blank">two-letter ISO code</a>).|

#### Enumerated Values

|Property|Value|
|---|---|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|

<h2 id="tocS_TokenRequest">TokenRequest</h2>
<!-- backwards compatibility -->
<a id="schematokenrequest"></a>
<a id="schema_TokenRequest"></a>
<a id="tocStokenrequest"></a>
<a id="tocstokenrequest"></a>

```json
{
  "type": "card",
  "number": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "name": "Bruce Wayne",
  "cvv": "956",
  "pin": "12",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  }
}

```

The source of the payment

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[01_CardTokenRequest](#schema01_cardtokenrequest)|false|none|Card Token Request|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[02_GooglePayTokenRequest](#schema02_googlepaytokenrequest)|false|none|Google Pay Token Request|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[03_ApplePayTokenRequest](#schema03_applepaytokenrequest)|false|none|Apple Pay Token Request|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[04_CvvTokenRequest](#schema04_cvvtokenrequest)|false|none|CVV Token Request|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[05_PinTokenRequest](#schema05_pintokenrequest)|false|none|PIN Token Request|

<h2 id="tocS_TokenResponse">TokenResponse</h2>
<!-- backwards compatibility -->
<a id="schematokenresponse"></a>
<a id="schema_TokenResponse"></a>
<a id="tocStokenresponse"></a>
<a id="tocstokenresponse"></a>

```json
{
  "type": "card",
  "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
  "expires_on": "2019-08-24T14:15:22Z",
  "expiry_month": 6,
  "expiry_year": 2025,
  "scheme": "VISA",
  "scheme_local": "cartes_bancaires",
  "last4": "9996",
  "bin": "454347",
  "card_type": "CREDIT",
  "card_category": "CONSUMER",
  "issuer": "GOTHAM STATE BANK",
  "issuer_country": "US",
  "product_id": "F",
  "product_type": "CLASSIC",
  "billing_address": {
    "address_line1": "123 High St.",
    "address_line2": "Flat 456",
    "city": "London",
    "state": "str",
    "zip": "SW1A 1AA",
    "country": "GB"
  },
  "phone": {
    "country_code": "+1",
    "number": "415 555 2671"
  },
  "name": "Bruce Wayne"
}

```

The source of the payment

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|[TokenResponseType](#schematokenresponsetype)|true|none|The type of card details to be tokenized|
|token|string|true|none|The reference token|
|expires_on|[ServerTimestamp](#schemaservertimestamp)|true|none|The date/time the token will expire|
|expiry_month|integer|false|none|The expiry month|
|expiry_year|integer|false|none|expiry year|
|scheme|string|false|none|The card scheme|
|scheme_local|string|false|none|The local co-branded card scheme|
|last4|string|false|none|The last four digits of the card number|
|bin|string|false|none|The card issuer BIN|
|card_type|string|false|none|The card type|
|card_category|string|false|none|The card category|
|issuer|string|false|none|The name of the card issuer|
|issuer_country|string|false|none|The card issuer country ISO-2 code|
|product_id|string|false|none|The issuer/card scheme product identifier|
|product_type|string|false|none|The issuer/card scheme product type|

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[01_CardTokenResponse](#schema01_cardtokenresponse)|false|none|Card Token Response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[02_GooglePayTokenResponse](#schema02_googlepaytokenresponse)|false|none|Google Pay Token Response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[03_ApplePayTokenResponse](#schema03_applepaytokenresponse)|false|none|Apple Pay Token Response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[04_CvvTokenResponse](#schema04_cvvtokenresponse)|false|none|CVV Token Response|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[05_PinTokenResponse](#schema05_pintokenresponse)|false|none|PIN Token Response|

#### Enumerated Values

|Property|Value|
|---|---|
|scheme_local|cartes_bancaires|
|card_type|CREDIT|
|card_type|DEBIT|
|card_type|PREPAID|
|card_type|CHARGE|
|card_type|DEFERRED DEBIT|
|card_category|CONSUMER|
|card_category|COMMERCIAL|

<h2 id="tocS_TokenResponseType">TokenResponseType</h2>
<!-- backwards compatibility -->
<a id="schematokenresponsetype"></a>
<a id="schema_TokenResponseType"></a>
<a id="tocStokenresponsetype"></a>
<a id="tocstokenresponsetype"></a>

```json
"card"

```

Ordered list of token response types used for discriminators

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|string|false|none|Ordered list of token response types used for discriminators|

#### Enumerated Values

|Property|Value|
|---|---|
|*anonymous*|card|
|*anonymous*|googlepay|
|*anonymous*|applepay|
|*anonymous*|cvv|
|*anonymous*|pin|

<h2 id="tocS_CreateTransferRequest">CreateTransferRequest</h2>
<!-- backwards compatibility -->
<a id="schemacreatetransferrequest"></a>
<a id="schema_CreateTransferRequest"></a>
<a id="tocScreatetransferrequest"></a>
<a id="tocscreatetransferrequest"></a>

```json
{
  "reference": "superhero1234",
  "transfer_type": "commission",
  "source": {
    "id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
    "amount": 100,
    "currency": "GBP"
  },
  "destination": {
    "id": "ent_w4jelhppmfiufdnatam37wrfc4"
  }
}

```

Create transfer request

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|reference|string|false|none|A reference you can use later to identify this transfer|
|transfer_type|[TransferType](#schematransfertype)|true|none|The type of transfer|
|source|[TransferSource](#schematransfersource)|true|none|The object representing the source of the funds involved in the transfer.|
|destination|[TransferDestination](#schematransferdestination)|true|none|The object representing the destination of the funds involved in the transfer.|

<h2 id="tocS_CreateTransferResponse">CreateTransferResponse</h2>
<!-- backwards compatibility -->
<a id="schemacreatetransferresponse"></a>
<a id="schema_CreateTransferResponse"></a>
<a id="tocScreatetransferresponse"></a>
<a id="tocscreatetransferresponse"></a>

```json
{
  "id": "tra_y3oqhf46pyzuxjbcn2giaqnb4",
  "status": "pending",
  "_links": {
    "self": {
      "href": "https://transfers.checkout.com/transfers/tra_y3oqhf46pyzuxjbcn2giaqnb4"
    }
  }
}

```

Create transfer response

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The `id` representing the initiated transfer.|
|status|[TransferStatus](#schematransferstatus)|false|none|The current state of the initiated transfer.|
|_links|object|false|none|none|
|» self|[TransferLink](#schematransferlink)|false|none|none|

<h2 id="tocS_Transfer">Transfer</h2>
<!-- backwards compatibility -->
<a id="schematransfer"></a>
<a id="schema_Transfer"></a>
<a id="tocStransfer"></a>
<a id="tocstransfer"></a>

```json
{
  "id": "tra_y3oqhf46pyzuxjbcn2giaqnb4",
  "reference": "superhero1234",
  "status": "rejected",
  "transfer_type": "commission",
  "requested_on": "2021-12-15T09:15:02.3845763Z",
  "reason_codes": [
    "destination_transfers_capability_disabled",
    "source_and_destination_currency_accounts_must_be_different"
  ],
  "source": {
    "entity_id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
    "amount": 100,
    "currency": "GBP"
  },
  "destination": {
    "entity_id": "ent_bqik7gxoavwhmy3ot6kvmbx6py"
  },
  "_links": {
    "self": {
      "href": "https://transfers.checkout.com/transfers/tra_y3oqhf46pyzuxjbcn2giaqnb4"
    }
  }
}

```

The transfer information

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The transfer identifier|
|reference|string|false|none|A unique reference used to identify this transfer|
|status|[TransferStatus](#schematransferstatus)|false|none|The current state of the initiated transfer.|
|transfer_type|[TransferType](#schematransfertype)|false|none|The type of transfer|
|requested_on|string|false|none|The date the transfer was requested on|
|reason_codes|[string]|false|none|An optional set of reason codes describing why the transfer is in its current state|
|source|object|false|none|The source of the funds involved in the transfer|
|» entity_id|string|false|none|The ID of the entity that sent the transfer|
|» amount|integer|false|none|The amount transferred, in the minor unit of the currency represented by the `currency` property|
|» currency|string|false|none|The ISO currency code of the funds being transferred|
|destination|object|false|none|The destination of the funds involved in the transfer|
|» entity_id|string|false|none|The ID of the entity that received the transfer|
|_links|object|false|none|none|
|» self|[TransferLink](#schematransferlink)|false|none|none|

<h2 id="tocS_TransferDestination">TransferDestination</h2>
<!-- backwards compatibility -->
<a id="schematransferdestination"></a>
<a id="schema_TransferDestination"></a>
<a id="tocStransferdestination"></a>
<a id="tocstransferdestination"></a>

```json
{
  "id": "ent_w4jelhppmfiufdnatam37wrfc4"
}

```

Transfer destination

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The identifier representing the destination of the funds. Currently this should be an entity ID.|

<h2 id="tocS_TransferLink">TransferLink</h2>
<!-- backwards compatibility -->
<a id="schematransferlink"></a>
<a id="schema_TransferLink"></a>
<a id="tocStransferlink"></a>
<a id="tocstransferlink"></a>

```json
{
  "href": "string"
}

```

Transfer link

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|href|string|false|none|The link URL.|

<h2 id="tocS_TransferSource">TransferSource</h2>
<!-- backwards compatibility -->
<a id="schematransfersource"></a>
<a id="schema_TransferSource"></a>
<a id="tocStransfersource"></a>
<a id="tocstransfersource"></a>

```json
{
  "id": "ent_azsiyswl7bwe2ynjzujy7lcjca",
  "amount": 100,
  "currency": "GBP"
}

```

Transfer source

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The identifier representing the source of the funds. Currently this should be an entity ID.|
|amount|integer|false|none|The amount to be transferred, in the minor unit of the currency (which is represented by the `id` and, optionally, the `currency` property)|
|currency|string(ISO 4217)|false|none|The currency that the transfer should be made in. This should be a currency supported by both the source and destination of the transfer.|

<h2 id="tocS_TransferStatus">TransferStatus</h2>
<!-- backwards compatibility -->
<a id="schematransferstatus"></a>
<a id="schema_TransferStatus"></a>
<a id="tocStransferstatus"></a>
<a id="tocstransferstatus"></a>

```json
"pending"

```

Transfer status

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Transfer status|string|false|none|The current state of the initiated transfer.|

#### Enumerated Values

|Property|Value|
|---|---|
|Transfer status|pending|
|Transfer status|completed|
|Transfer status|rejected|

<h2 id="tocS_TransferType">TransferType</h2>
<!-- backwards compatibility -->
<a id="schematransfertype"></a>
<a id="schema_TransferType"></a>
<a id="tocStransfertype"></a>
<a id="tocstransfertype"></a>

```json
"commission"

```

Transfer type

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|Transfer type|string|false|none|The type of transfer|

#### Enumerated Values

|Property|Value|
|---|---|
|Transfer type|commission|
|Transfer type|promotion|
|Transfer type|refund|

<h2 id="tocS_UnreferencedRefundRequestAccountHolder">UnreferencedRefundRequestAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestaccountholder"></a>
<a id="schema_UnreferencedRefundRequestAccountHolder"></a>
<a id="tocSunreferencedrefundrequestaccountholder"></a>
<a id="tocsunreferencedrefundrequestaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string",
  "date_of_birth": "stringstri",
  "country_of_birth": "st"
}

```

The unreferenced refund destination account holder.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestIndividualAccountHolder](#schemaunreferencedrefundrequestindividualaccountholder)|false|none|The unreferenced refund destination account holder's details.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestCorporateAccountHolder](#schemaunreferencedrefundrequestcorporateaccountholder)|false|none|The unreferenced refund destination account holder's details.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestGovernmentAccountHolder](#schemaunreferencedrefundrequestgovernmentaccountholder)|false|none|The unreferenced refund destination account holder's details.|

<h2 id="tocS_UnreferencedRefundRequestCorporateAccountHolder">UnreferencedRefundRequestCorporateAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestcorporateaccountholder"></a>
<a id="schema_UnreferencedRefundRequestCorporateAccountHolder"></a>
<a id="tocSunreferencedrefundrequestcorporateaccountholder"></a>
<a id="tocsunreferencedrefundrequestcorporateaccountholder"></a>

```json
{
  "type": "corporate",
  "company_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string"
}

```

corporate

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the unreferenced refund.|
|company_name|string|true|none|The corporate account holder's company name.<br><br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide US ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» number|string|true|none|The digits of the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the unreferenced refund recipient increases the likelihood of a successful unreferenced refund.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_UnreferencedRefundRequestGovernmentAccountHolder">UnreferencedRefundRequestGovernmentAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestgovernmentaccountholder"></a>
<a id="schema_UnreferencedRefundRequestGovernmentAccountHolder"></a>
<a id="tocSunreferencedrefundrequestgovernmentaccountholder"></a>
<a id="tocsunreferencedrefundrequestgovernmentaccountholder"></a>

```json
{
  "type": "government",
  "company_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string"
}

```

government

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the unreferenced refund.|
|company_name|string|true|none|The account holder's company name.<br><br>This must be a valid legal name. The following formats for the `company_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide United States ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» number|string|true|none|The digits for the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the unreferenced refund recipient increases the likelihood of a successful unreferenced refund.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_UnreferencedRefundRequestIndividualAccountHolder">UnreferencedRefundRequestIndividualAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestindividualaccountholder"></a>
<a id="schema_UnreferencedRefundRequestIndividualAccountHolder"></a>
<a id="tocSunreferencedrefundrequestindividualaccountholder"></a>
<a id="tocsunreferencedrefundrequestindividualaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string",
  "date_of_birth": "stringstri",
  "country_of_birth": "st"
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|false|none|The type of account receiving the unreferenced refund.|
|first_name|string|false|none|The account holder's first name.<br>  <br>This must be a valid legal name. The following formats for the `first_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>- a single character<br>- all numeric characters<br>- all punctuation characters|
|middle_name|string|false|none|The account holder's middle name.|
|last_name|string|false|none|The account holder's last name.<br><br>This must be a valid legal name. The following formats for the `last_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all numeric characters<br>  - all punctuation characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide United States ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» number|string|true|none|The digits for the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the unreferenced refund recipient increases the likelihood of a successful payout.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|
|date_of_birth|string|false|none|The account holder's date of birth, in the format `YYYY-MM-DD`.|
|country_of_birth|string|false|none|The account holder's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_UnreferencedRefundRequestIndividualCardTypeAccountHolder">UnreferencedRefundRequestIndividualCardTypeAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestindividualcardtypeaccountholder"></a>
<a id="schema_UnreferencedRefundRequestIndividualCardTypeAccountHolder"></a>
<a id="tocSunreferencedrefundrequestindividualcardtypeaccountholder"></a>
<a id="tocsunreferencedrefundrequestindividualcardtypeaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string",
  "date_of_birth": "stringstri",
  "country_of_birth": "st"
}

```

individual

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The type of account receiving the unreferenced refund.|
|first_name|string|true|none|The account holder's first name.<br>  <br>This must be a valid legal name. The following formats for the `first_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>- a single character<br>- all non-alphabetic characters|
|middle_name|string|false|none|The account holder's middle name.|
|last_name|string|true|none|The account holder's last name.<br><br>This must be a valid legal name. The following formats for the `last_name` value will return a [field validation error](https://www.checkout.com/docs/developer-resources/codes/error-codes#Field_validation_errors):<br><br>  - a single character<br>  - all non-alphabetic characters|
|billing_address|object|false|none|The account holder's billing address.<br><br>If your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.|
|» address_line1|string|false|none|The first line of the address.|
|» address_line2|string|false|none|The second line of the address.|
|» city|string|false|none|The address city.|
|» state|string|false|none|The address state.|
|» zip|string|false|none|The address ZIP or postal code.<br><br>You must provide United States ZIPs in the format `00000`, or `00000-0000`.|
|» country|string|false|none|The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|phone|object|false|none|The account holder's phone number.|
|» country_code|string|true|none|The international dialing code for the account holder's address `country`, as an [ITU-T E.164 code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|
|» number|string|true|none|The digits for the phone number, not including the `country_code`.|
|identification|object|false|none|The account holder's identification.<br><br>Providing identification details for the unreferenced refund recipient increases the likelihood of a successful unreferenced refund.|
|» type|string|true|none|The type of identification for the account holder.|
|» number|string|true|none|The account holder's identification number.|
|» issuing_country|string|false|none|If applicable, the country that issued the account holder's identification, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).<br><br>Providing `issuing_country` increases the likelihood of a successful identity verification.|
|» date_of_expiry|string|false|none|If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.<br><br>Providing `date_of_expiry` increases the likelihood of a successful identity verification.|
|email|string|false|none|The account holder's email address.|
|date_of_birth|string|false|none|The account holder's date of birth, in the format `YYYY-MM-DD`.|
|country_of_birth|string|false|none|The account holder's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).|

#### Enumerated Values

|Property|Value|
|---|---|
|type|passport|
|type|driving_license|
|type|national_id|
|type|company_registration|
|type|tax_id|

<h2 id="tocS_UnreferencedRefundRequestNameRequiredAccountHolder">UnreferencedRefundRequestNameRequiredAccountHolder</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestnamerequiredaccountholder"></a>
<a id="schema_UnreferencedRefundRequestNameRequiredAccountHolder"></a>
<a id="tocSunreferencedrefundrequestnamerequiredaccountholder"></a>
<a id="tocsunreferencedrefundrequestnamerequiredaccountholder"></a>

```json
{
  "type": "individual",
  "first_name": "string",
  "middle_name": "string",
  "last_name": "string",
  "billing_address": {
    "address_line1": "string",
    "address_line2": "string",
    "city": "string",
    "state": "str",
    "zip": "string",
    "country": "st"
  },
  "phone": {
    "country_code": "string",
    "number": "string"
  },
  "identification": {
    "type": "passport",
    "number": "string",
    "issuing_country": "st",
    "date_of_expiry": "stringstri"
  },
  "email": "string",
  "date_of_birth": "stringstri",
  "country_of_birth": "st"
}

```

The unreferenced refund destination account holder.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestIndividualCardTypeAccountHolder](#schemaunreferencedrefundrequestindividualcardtypeaccountholder)|false|none|The unreferenced refund destination account holder's details.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestCorporateAccountHolder](#schemaunreferencedrefundrequestcorporateaccountholder)|false|none|The unreferenced refund destination account holder's details.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestGovernmentAccountHolder](#schemaunreferencedrefundrequestgovernmentaccountholder)|false|none|The unreferenced refund destination account holder's details.|

<h2 id="tocS_UnreferencedRefundRequestDestinationTypeCard">UnreferencedRefundRequestDestinationTypeCard</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestdestinationtypecard"></a>
<a id="schema_UnreferencedRefundRequestDestinationTypeCard"></a>
<a id="tocSunreferencedrefundrequestdestinationtypecard"></a>
<a id="tocsunreferencedrefundrequestdestinationtypecard"></a>

```json
{
  "type": "string",
  "number": "string",
  "expiry_month": 0,
  "expiry_year": 0,
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "billing_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "str",
      "zip": "string",
      "country": "st"
    },
    "phone": {
      "country_code": "string",
      "number": "string"
    },
    "identification": {
      "type": "passport",
      "number": "string",
      "issuing_country": "st",
      "date_of_expiry": "stringstri"
    },
    "email": "string",
    "date_of_birth": "stringstri",
    "country_of_birth": "st"
  }
}

```

card

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The unreferenced refund destination type.|
|number|string|true|none|The card number.|
|expiry_month|integer|true|none|The card's expiration month.|
|expiry_year|integer|true|none|The card's expiration year.|
|account_holder|[UnreferencedRefundRequestNameRequiredAccountHolder](#schemaunreferencedrefundrequestnamerequiredaccountholder)|true|none|The unreferenced refund destination account holder.|

<h2 id="tocS_UnreferencedRefundRequestDestinationTypeId">UnreferencedRefundRequestDestinationTypeId</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestdestinationtypeid"></a>
<a id="schema_UnreferencedRefundRequestDestinationTypeId"></a>
<a id="tocSunreferencedrefundrequestdestinationtypeid"></a>
<a id="tocsunreferencedrefundrequestdestinationtypeid"></a>

```json
{
  "type": "string",
  "id": "stringstringstringstringstring",
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "billing_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "str",
      "zip": "string",
      "country": "st"
    },
    "phone": {
      "country_code": "string",
      "number": "string"
    },
    "identification": {
      "type": "passport",
      "number": "string",
      "issuing_country": "st",
      "date_of_expiry": "stringstri"
    },
    "email": "string",
    "date_of_birth": "stringstri",
    "country_of_birth": "st"
  }
}

```

id

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The unreferenced refund destination type.|
|id|string|true|none|The payment source ID. This will be an ID with the prefix `src_`.|
|account_holder|[UnreferencedRefundRequestAccountHolder](#schemaunreferencedrefundrequestaccountholder)|false|none|The unreferenced refund destination account holder.|

<h2 id="tocS_UnreferencedRefundRequestDestinationTypeNetworkToken">UnreferencedRefundRequestDestinationTypeNetworkToken</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestdestinationtypenetworktoken"></a>
<a id="schema_UnreferencedRefundRequestDestinationTypeNetworkToken"></a>
<a id="tocSunreferencedrefundrequestdestinationtypenetworktoken"></a>
<a id="tocsunreferencedrefundrequestdestinationtypenetworktoken"></a>

```json
{
  "type": "string",
  "token": "4543474002249996",
  "expiry_month": 6,
  "expiry_year": 2025,
  "token_type": "vts",
  "cryptogram": "hv8mUFzPzRZoCAAAAAEQBDMAAAA=",
  "eci": "05",
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "billing_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "str",
      "zip": "string",
      "country": "st"
    },
    "phone": {
      "country_code": "string",
      "number": "string"
    },
    "identification": {
      "type": "passport",
      "number": "string",
      "issuing_country": "st",
      "date_of_expiry": "stringstri"
    },
    "email": "string",
    "date_of_birth": "stringstri",
    "country_of_birth": "st"
  }
}

```

network_token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The unreferenced refund destination type.|
|token|string|true|none|The network token's Primary Account Number (PAN).|
|expiry_month|integer|true|none|The network token's expiration month.|
|expiry_year|integer|true|none|The network token's expiration year.|
|token_type|string|true|none|The network token type.|
|cryptogram|string|false|none|The network token's Base64-encoded cryptographic identifier (TAVV).<br><br>The cryptogram is used by card schemes to validate the token verification result.|
|eci|string|false|none|The network token's Electronic Commerce Indicator (ECI) security level.|
|account_holder|[UnreferencedRefundRequestNameRequiredAccountHolder](#schemaunreferencedrefundrequestnamerequiredaccountholder)|true|none|The unreferenced refund destination account holder.|

#### Enumerated Values

|Property|Value|
|---|---|
|token_type|vts|
|token_type|mdes|
|token_type|applepay|
|token_type|googlepay|

<h2 id="tocS_UnreferencedRefundRequestDestinationTypeToken">UnreferencedRefundRequestDestinationTypeToken</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestdestinationtypetoken"></a>
<a id="schema_UnreferencedRefundRequestDestinationTypeToken"></a>
<a id="tocSunreferencedrefundrequestdestinationtypetoken"></a>
<a id="tocsunreferencedrefundrequestdestinationtypetoken"></a>

```json
{
  "type": "string",
  "token": "stringstringstringstringstring",
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "billing_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "str",
      "zip": "string",
      "country": "st"
    },
    "phone": {
      "country_code": "string",
      "number": "string"
    },
    "identification": {
      "type": "passport",
      "number": "string",
      "issuing_country": "st",
      "date_of_expiry": "stringstri"
    },
    "email": "string",
    "date_of_birth": "stringstri",
    "country_of_birth": "st"
  }
}

```

token

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|type|string|true|none|The unreferenced refund destination type.|
|token|string|true|none|The Checkout.com card token ID. This will be an ID with the prefix `tok_`.|
|account_holder|[UnreferencedRefundRequestAccountHolder](#schemaunreferencedrefundrequestaccountholder)|false|none|The unreferenced refund destination account holder.|

<h2 id="tocS_UnreferencedRefundAcceptedResponse">UnreferencedRefundAcceptedResponse</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundacceptedresponse"></a>
<a id="schema_UnreferencedRefundAcceptedResponse"></a>
<a id="tocSunreferencedrefundacceptedresponse"></a>
<a id="tocsunreferencedrefundacceptedresponse"></a>

```json
{
  "id": "pay_g4blr3juzouutaijarea5hejd4",
  "status": "Pending",
  "reference": "REF-FQSGRB",
  "instruction": {
    "value_date": "2020-06-12T22:27:42.512594Z"
  },
  "destination": {
    "account_holder": {
      "id": "src_nwd3m4in3hkuddfpjsaevunhdy"
    }
  },
  "_links": {
    "self": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_g4blr3juzouutaijarea5hejd4"
    },
    "actions": {
      "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_g4blr3juzouutaijarea5hejd4/actions"
    }
  }
}

```

Unreferenced Refund

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|true|none|The payment's unique identifier.|
|status|string|true|none|The refund status.|
|reference|string|false|none|The reference you provided in the refund request.|
|instruction|[PaymentInstructionResponse](#schemapaymentinstructionresponse)|false|none|Instruction details for payouts to bank accounts.|
|destination|object|false|none|The refund destination.|
|» account_holder|object|false|none|The account holder details.|
|»» id|string|false|none|The payment destination identifier (e.g., a card source identifier)|
|_links|object|false|none|The links related to the refund.|
|» self|object|true|none|The refund URI.|
|»» href|string|false|none|The link URL|
|» actions|object|false|none|The refund actions URI.|
|»» href|string|false|none|The link URL|

#### Enumerated Values

|Property|Value|
|---|---|
|status|Accepted|
|status|Rejected|
|status|Pending|

<h2 id="tocS_UnreferencedRefundRequestDestination">UnreferencedRefundRequestDestination</h2>
<!-- backwards compatibility -->
<a id="schemaunreferencedrefundrequestdestination"></a>
<a id="schema_UnreferencedRefundRequestDestination"></a>
<a id="tocSunreferencedrefundrequestdestination"></a>
<a id="tocsunreferencedrefundrequestdestination"></a>

```json
{
  "type": "string",
  "token": "stringstringstringstringstring",
  "account_holder": {
    "type": "individual",
    "first_name": "string",
    "middle_name": "string",
    "last_name": "string",
    "billing_address": {
      "address_line1": "string",
      "address_line2": "string",
      "city": "string",
      "state": "str",
      "zip": "string",
      "country": "st"
    },
    "phone": {
      "country_code": "string",
      "number": "string"
    },
    "identification": {
      "type": "passport",
      "number": "string",
      "issuing_country": "st",
      "date_of_expiry": "stringstri"
    },
    "email": "string",
    "date_of_birth": "stringstri",
    "country_of_birth": "st"
  }
}

```

The destination of the unreferenced refund.

### Properties

oneOf

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestDestinationTypeToken](#schemaunreferencedrefundrequestdestinationtypetoken)|false|none|The destination of the unreferenced refund.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestDestinationTypeId](#schemaunreferencedrefundrequestdestinationtypeid)|false|none|The destination of the unreferenced refund.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestDestinationTypeCard](#schemaunreferencedrefundrequestdestinationtypecard)|false|none|The destination of the unreferenced refund.|

xor

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|*anonymous*|[UnreferencedRefundRequestDestinationTypeNetworkToken](#schemaunreferencedrefundrequestdestinationtypenetworktoken)|false|none|The destination of the unreferenced refund.|

<h2 id="tocS_UpdateCustomerRequest">UpdateCustomerRequest</h2>
<!-- backwards compatibility -->
<a id="schemaupdatecustomerrequest"></a>
<a id="schema_UpdateCustomerRequest"></a>
<a id="tocSupdatecustomerrequest"></a>
<a id="tocsupdatecustomerrequest"></a>

```json
{
  "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
  "default": true
}

```

The customer's details

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|id|string|false|none|The identifier of an existing customer|
|default|boolean|false|none|If true, sets this instrument as the default for the customer|

<h2 id="tocS_ValidationError">ValidationError</h2>
<!-- backwards compatibility -->
<a id="schemavalidationerror"></a>
<a id="schema_ValidationError"></a>
<a id="tocSvalidationerror"></a>
<a id="tocsvalidationerror"></a>

```json
{
  "request_id": "0HL80RJLS76I7",
  "error_type": "request_invalid",
  "error_codes": [
    "payment_source_required"
  ]
}

```

### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|request_id|string|false|none|none|
|error_type|string|false|none|none|
|error_codes|[string]|false|none|none|

